diff --git a/CHANGES.md b/CHANGES.md
index e512511a44..1471b1e650 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,10 +1,33 @@
-# Future (1.7.9) [v3]
+# Future
+- BUGFIX/MENU: Fix menu rendering with Mali GPUs after changing video dimensions
+- CDROM: Adds pregap support to cdfs helper methods
+- CHEEVOS: Provides the new PCEngine hashing algorithm for RetroAchievements
+- LOCALIZATION: Update French translation
+- LOCALIZATION: Update Polish translation
+- MENU/MATERIALUI: Bugfix - Under certain extreme circumstances, entries with very long sublabel strings could have their text prematurely 'clipped' as the entry is scrolled beyond the top of the screen
+- MENU/MATERIALUI: Bugfix - Certain setting value strings were unnecessarily truncated (with a ...) when using smooth ticker text
+
+
+# (1.8.0)
- AI SERVICE: Added in fix for BMP returns to AI service. Added in label passing to AI service call
- BSV: Fix BSV recording/playback
- BUGFIX: Fix crash when setting Thumbnail Directory
+- BUGFIX/STABILITY: Set "Automatically Add Content to Playlist" to false by default, this was unstable on PS3 and Mac and other platforms potentially as well.
- COMMON: Graceful driver switching for Windows and Linux
+- COMMON: Cache frame before converting 0RGB1555
- LAKKA: Wi-Fi Access Point settings
- MENU: Menu scaling improvements
+- MENU/MATERIALUI: There are no longer any animation glitches when 'wraparound' scrolling from the last entry in a list to the first, or when performing horizontal swipe navigation gestures on certain settings-type entries
+- MENU/MATERIALUI: List entries underneath the title and navigation bars are no longer highlighted when touching the title/navigation bars (this was only a cosmetic issue, but it was annoying...)
+- MENU/MATERIALUI: The current menu list is no longer reloaded when pressing the currently active tab on the navigation bar
+- MENU/MATERIALUI: The ticker text spacer has been set to a 'bullet' character (same as Ozone)
+- MENU/MATERIALUI: The default colour theme has been set to 'Ozone Dark'
+- MENU/MATERIALUI: Three new colour themes have been added.
+- MENU/MATERIALUI: A new Menu Transition Animation option has been added under User Interface > Appearance. When this is enabled, menu transition events are animated
+- MENU/MATERIALUI: The navigation bar is now shown at all times - i.e. it is an actual navigation tool, rather than a 'top-level-menu' curiosity
+- MENU/MATERIALUI: Two new context-sensitive buttons have been added to the navigation bar - back button and resume button
+- MENU/MATERIALUI: A new Auto-Rotate Navigation Bar option has been added under User Interface > Appearance. When enabled (this is the default setting), the navigation bar is moved to the right hand side of the screen when using landscape screen orientations.
+- MENU/MATERIALUI: The playlists tab is now correctly hidden when User Interface > Views > Show Playlist Tabs is disabled
- MENU/MATERIALUI: Material UI now correctly readjusts its layout when screen orientation changes on mobile devices
- MENU/MATERIALUI: Material UI now resizes in real-time when the user manually sets the Menu Scale Factor (this never worked properly with the old DPI override)
- MENU/MATERIALUI: Material UI no longer leaks memory on 'context reset' (fonts were previously never free()'d)
@@ -16,7 +39,7 @@
- OSD: Fix fast forward indicator when not using menu widgets
- PSP1: Remove duplicated FPS indicator on the screen
- SWITCH: Make audren threaded audio driver the new default
-- VIDEO LAYOUT: Add video layout mame overlay compatibility. Enabled for Windows/Linux/OSX/iOS/Android/libnx. Only works with GL driver for now
+- VIDEO LAYOUT: Add video layout mame overlay compatibility. Enabled for Windows/Linux/OSX/iOS/Android/libnx. Only works with GL driver for now, no glcore yet
# (1.7.9) (v2)
- 3DS: Fix 3DS screen flickering when OSD is enabled
@@ -962,3 +985,4 @@ Skipped this one
# 1.4.1
+
diff --git a/cheevos-new/cheevos.c b/cheevos-new/cheevos.c
index 7525165fdb..68dc0d6e26 100644
--- a/cheevos-new/cheevos.c
+++ b/cheevos-new/cheevos.c
@@ -1127,6 +1127,7 @@ typedef struct
struct http_connection_t *conn;
struct http_t *http;
const rcheevos_cheevo_t *cheevo_end;
+ cdfs_track_t *track;
cdfs_file_t cdfp;
/* co-routine required fields */
@@ -1151,7 +1152,8 @@ enum
RCHEEVOS_HTTP_GET = -13,
RCHEEVOS_DEACTIVATE = -14,
RCHEEVOS_PLAYING = -15,
- RCHEEVOS_DELAY = -16
+ RCHEEVOS_DELAY = -16,
+ RCHEEVOS_PCE_CD_MD5 = -17
};
static int rcheevos_iterate(rcheevos_coro_t* coro)
@@ -1212,6 +1214,13 @@ static int rcheevos_iterate(rcheevos_coro_t* coro)
0
};
+ static const uint32_t pce_cd_exts[] =
+ {
+ 0x0b886782U, /* cue */
+ 0x0b8865d4U, /* chd */
+ 0
+ };
+
static const uint32_t arcade_exts[] =
{
0x0b88c7d8U, /* zip */
@@ -1224,6 +1233,7 @@ static int rcheevos_iterate(rcheevos_coro_t* coro)
{RCHEEVOS_LYNX_MD5, "Atari Lynx (discards header)", lynx_exts},
{RCHEEVOS_NES_MD5, "NES (discards header)", nes_exts},
{RCHEEVOS_PSX_MD5, "Playstation (main executable)", psx_exts},
+ {RCHEEVOS_PCE_CD_MD5, "PC Engine CD (boot sector)", pce_cd_exts},
{RCHEEVOS_SEGACD_MD5, "Sega CD/Saturn (first sector)", segacd_exts},
{RCHEEVOS_ARCADE_MD5, "Arcade (filename)", arcade_exts},
{RCHEEVOS_GENERIC_MD5, "Generic (plain content)", NULL}
@@ -1584,11 +1594,11 @@ found:
MD5_Init(&coro->md5);
/* find the data track - it should be the first one */
- coro->stream = cdfs_open_data_track(coro->path);
- if (coro->stream)
+ coro->track = cdfs_open_data_track(coro->path);
+ if (coro->track)
{
/* open the raw CD */
- if (cdfs_open_file(&coro->cdfp, coro->stream, NULL))
+ if (cdfs_open_file(&coro->cdfp, coro->track, NULL))
{
coro->count = 512;
free(coro->data);
@@ -1601,14 +1611,87 @@ found:
cdfs_close_file(&coro->cdfp);
- intfstream_close(coro->stream);
- CHEEVOS_FREE(coro->stream);
+ cdfs_close_track(coro->track);
+ coro->track = NULL;
CORO_GOTO(RCHEEVOS_GET_GAMEID);
}
- intfstream_close(coro->stream);
- CHEEVOS_FREE(coro->stream);
+ cdfs_close_track(coro->track);
+ coro->track = NULL;
+ }
+
+ CHEEVOS_LOG(RCHEEVOS_TAG "could not open CD\n", coro->gameid);
+ coro->gameid = 0;
+ CORO_RET();
+ }
+
+
+ /**************************************************************************
+ * Info Tries to identify a PC Engine CD game
+ * Input CHEEVOS_VAR_INFO the content info
+ * Output CHEEVOS_VAR_GAMEID the Retro Achievements game ID, or 0 if not found
+ *************************************************************************/
+ CORO_SUB(RCHEEVOS_PCE_CD_MD5)
+ {
+ MD5_Init(&coro->md5);
+
+ /* find the data track - it should be the second one */
+ coro->track = cdfs_open_data_track(coro->path);
+ if (coro->track)
+ {
+ /* open the raw CD */
+ if (cdfs_open_file(&coro->cdfp, coro->track, NULL))
+ {
+ /* the PC-Engine uses the second sector to specify boot information and program name.
+ * the string "PC Engine CD-ROM SYSTEM" should exist at 32 bytes into the sector
+ * http://shu.sheldows.com/shu/download/pcedocs/pce_cdrom.html
+ */
+ cdfs_seek_sector(&coro->cdfp, 1);
+ cdfs_read_file(&coro->cdfp, buffer, 128);
+
+ if (strncmp("PC Engine CD-ROM SYSTEM", (const char*)& buffer[32], 23) != 0)
+ {
+ CHEEVOS_LOG(RCHEEVOS_TAG "not a PC Engine CD\n", coro->gameid);
+
+ cdfs_close_track(coro->track);
+ coro->track = NULL;
+
+ coro->gameid = 0;
+ CORO_RET();
+ }
+
+ {
+ /* the first three bytes specify the sector of the program data, and the fourth byte
+ * is the number of sectors.
+ */
+ const unsigned int first_sector = buffer[0] * 65536 + buffer[1] * 256 + buffer[2];
+ cdfs_seek_sector(&coro->cdfp, first_sector);
+
+ to_read = buffer[3] * 2048;
+ }
+
+ coro->count = to_read + 22;
+ free(coro->data);
+ coro->data = (uint8_t*)malloc(coro->count);
+ memcpy(coro->data, &buffer[106], 22);
+
+ cdfs_read_file(&coro->cdfp, ((uint8_t*)coro->data) + 22, to_read);
+ coro->len = coro->count;
+
+ CORO_GOSUB(RCHEEVOS_EVAL_MD5);
+ MD5_Final(coro->hash, &coro->md5);
+
+ cdfs_close_file(&coro->cdfp);
+
+ cdfs_close_track(coro->track);
+ coro->track = NULL;
+
+ CORO_GOTO(RCHEEVOS_GET_GAMEID);
+ }
+
+ cdfs_close_track(coro->track);
+ coro->track = NULL;
}
CHEEVOS_LOG(RCHEEVOS_TAG "could not open CD\n", coro->gameid);
@@ -1626,41 +1709,12 @@ found:
{
MD5_Init(&coro->md5);
- /* if we're looking at an m3u file, get the first disc from the playlist */
- end = path_get_extension(coro->path);
- if (string_is_equal_noncase(end, "m3u"))
- {
- intfstream_t* m3u_stream = intfstream_open_file(coro->path, RETRO_VFS_FILE_ACCESS_READ, RETRO_VFS_FILE_ACCESS_HINT_NONE);
- if (m3u_stream)
- {
- char disc_path[PATH_MAX_LENGTH];
- char* tmp;
-
- num_read = intfstream_read(m3u_stream, buffer, sizeof(buffer));
- intfstream_close(m3u_stream);
- buffer[num_read] = '\0';
-
- tmp = buffer;
- while (*tmp && *tmp != '\n')
- ++tmp;
- if (tmp > buffer && tmp[-1] == '\r')
- --tmp;
- *tmp = '\0';
-
- fill_pathname_basedir(disc_path, coro->path, sizeof(disc_path));
- strlcat(disc_path, buffer, sizeof(disc_path));
-
- free((void*)coro->path);
- coro->path = strdup(disc_path);
- }
- }
-
/* find the data track - it should be the first one */
- coro->stream = cdfs_open_data_track(coro->path);
- if (coro->stream)
+ coro->track = cdfs_open_data_track(coro->path);
+ if (coro->track)
{
/* open the SYSTEM.CNF file and find the BOOT= record */
- if (cdfs_open_file(&coro->cdfp, coro->stream, "SYSTEM.CNF"))
+ if (cdfs_open_file(&coro->cdfp, coro->track, "SYSTEM.CNF"))
{
cdfs_read_file(&coro->cdfp, buffer, sizeof(buffer));
@@ -1703,7 +1757,7 @@ found:
strcpy(exe_name_buffer, exe_name);
/* open the file pointed to by the BOOT= record */
- if (exe_name_buffer[0] && cdfs_open_file(&coro->cdfp, coro->stream, exe_name_buffer))
+ if (exe_name_buffer[0] && cdfs_open_file(&coro->cdfp, coro->track, exe_name_buffer))
{
cdfs_read_file(&coro->cdfp, buffer, sizeof(buffer));
@@ -1750,8 +1804,8 @@ found:
cdfs_close_file(&coro->cdfp);
- intfstream_close(coro->stream);
- CHEEVOS_FREE(coro->stream);
+ cdfs_close_track(coro->track);
+ coro->track = NULL;
CORO_GOTO(RCHEEVOS_GET_GAMEID);
}
@@ -1761,8 +1815,8 @@ found:
CHEEVOS_LOG(RCHEEVOS_TAG "could not locate primary executable\n", coro->gameid);
- intfstream_close(coro->stream);
- CHEEVOS_FREE(coro->stream);
+ cdfs_close_track(coro->track);
+ coro->track = NULL;
}
else
{
@@ -2331,6 +2385,7 @@ bool rcheevos_load(const void *data)
CORO_SETUP();
info = (const struct retro_game_info*)data;
+ strncpy(buffer, path_get_extension(info->path), sizeof(buffer));
if (info->data)
{
@@ -2356,9 +2411,40 @@ bool rcheevos_load(const void *data)
{
coro->data = NULL;
coro->path = strdup(info->path);
+
+ /* if we're looking at an m3u file, get the first disc from the playlist */
+ if (string_is_equal_noncase(path_get_extension(coro->path), "m3u"))
+ {
+ intfstream_t* m3u_stream = intfstream_open_file(coro->path, RETRO_VFS_FILE_ACCESS_READ, RETRO_VFS_FILE_ACCESS_HINT_NONE);
+ if (m3u_stream)
+ {
+ char m3u_contents[1024];
+ char disc_path[PATH_MAX_LENGTH];
+ char* tmp;
+ int64_t num_read;
+
+ num_read = intfstream_read(m3u_stream, m3u_contents, sizeof(m3u_contents) - 1);
+ intfstream_close(m3u_stream);
+ m3u_contents[num_read] = '\0';
+
+ tmp = m3u_contents;
+ while (*tmp && *tmp != '\n')
+ ++tmp;
+ if (tmp > buffer && tmp[-1] == '\r')
+ --tmp;
+ *tmp = '\0';
+
+ fill_pathname_basedir(disc_path, coro->path, sizeof(disc_path));
+ strlcat(disc_path, m3u_contents, sizeof(disc_path));
+
+ free((void*)coro->path);
+ coro->path = strdup(disc_path);
+
+ strncpy(buffer, path_get_extension(disc_path), sizeof(buffer));
+ }
+ }
}
- strncpy(buffer, path_get_extension(info->path), sizeof(buffer));
buffer[sizeof(buffer) - 1] = '\0';
string_to_lower(buffer);
coro->ext_hash = rcheevos_djb2(buffer, strlen(buffer));
diff --git a/config.def.h b/config.def.h
index 5fc9b49cc1..0f8cd0d2ff 100644
--- a/config.def.h
+++ b/config.def.h
@@ -114,9 +114,33 @@
#endif
#ifdef HAVE_MATERIALUI
+/* Show icons to the left of each menu entry */
#define DEFAULT_MATERIALUI_ICONS_ENABLE true
#endif
+/* Material UI colour theme */
+#define DEFAULT_MATERIALUI_THEME MATERIALUI_THEME_OZONE_DARK
+
+/* Type of animation to use when performing menu transitions
+ * > 'Auto' follows Material UI standards:
+ * - Slide when switching between parent menus (tabs)
+ * - Fade when changing levels in a menu
+ * Note: Not wrapping this with a HAVE_MATERIALUI ifdef
+ * because there's too much baggage involved... */
+#define DEFAULT_MATERIALUI_TRANSITION_ANIM MATERIALUI_TRANSITION_ANIM_AUTO
+
+/* Adjust menu padding etc. to better fit the
+ * screen when using landscape layouts */
+#if defined(RARCH_MOBILE)
+#define DEFAULT_MATERIALUI_OPTIMIZE_LANDSCAPE_LAYOUT false
+#else
+#define DEFAULT_MATERIALUI_OPTIMIZE_LANDSCAPE_LAYOUT true
+#endif
+
+/* Reposition navigation bar to make better use
+ * of screen space when using landscape layouts */
+#define DEFAULT_MATERIALUI_AUTO_ROTATE_NAV_BAR true
+
#define DEFAULT_CRT_SWITCH_RESOLUTION CRT_SWITCH_NONE
#define DEFAULT_CRT_SWITCH_RESOLUTION_SUPER 2560
@@ -127,6 +151,8 @@
#define DEFAULT_PLAYLIST_ENTRY_RENAME true
+#define DEFAULT_DRIVER_SWITCH_ENABLE true
+
#define DEFAULT_USER_LANGUAGE 0
#if (defined(_WIN32) && !defined(_XBOX)) || (defined(__linux) && !defined(ANDROID) && !defined(HAVE_LAKKA)) || (defined(__MACH__) && !defined(IOS)) || defined(EMSCRIPTEN)
@@ -520,7 +546,8 @@ static bool rgui_extended_ascii = false;
#define DEFAULT_BLOCK_CONFIG_READ false
#endif
-#define DEFAULT_AUTOMATICALLY_ADD_CONTENT_TO_PLAYLIST true
+/* TODO/FIXME - this setting is thread-unsafe right now and can corrupt the stack - default to off */
+#define DEFAULT_AUTOMATICALLY_ADD_CONTENT_TO_PLAYLIST false
static bool default_game_specific_options = true;
static bool default_auto_overrides_enable = true;
@@ -1118,6 +1145,8 @@ static char default_discord_app_id[] = "475456035851599874";
#define DEFAULT_AI_SERVICE_ENABLE true
+#define DEFAULT_AI_SERVICE_PAUSE false
+
#define DEFAULT_AI_SERVICE_MODE 1
#define DEFAULT_AI_SERVICE_URL "http://localhost:4404/"
diff --git a/configuration.c b/configuration.c
index ef462e5eba..37885e57a0 100644
--- a/configuration.c
+++ b/configuration.c
@@ -1330,6 +1330,7 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
struct config_bool_setting *tmp = (struct config_bool_setting*)calloc(1, (*size + 1) * sizeof(struct config_bool_setting));
unsigned count = 0;
+ SETTING_BOOL("driver_switch_enable", &settings->bools.driver_switch_enable, true, DEFAULT_DRIVER_SWITCH_ENABLE, false);
SETTING_BOOL("frame_time_counter_reset_after_fastforwarding", &settings->bools.frame_time_counter_reset_after_fastforwarding, true, false, false);
SETTING_BOOL("frame_time_counter_reset_after_load_state", &settings->bools.frame_time_counter_reset_after_load_state, true, false, false);
SETTING_BOOL("frame_time_counter_reset_after_save_state", &settings->bools.frame_time_counter_reset_after_save_state, true, false, false);
@@ -1555,6 +1556,8 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
SETTING_BOOL("menu_show_advanced_settings", &settings->bools.menu_show_advanced_settings, true, DEFAULT_SHOW_ADVANCED_SETTINGS, false);
#ifdef HAVE_MATERIALUI
SETTING_BOOL("materialui_icons_enable", &settings->bools.menu_materialui_icons_enable, true, DEFAULT_MATERIALUI_ICONS_ENABLE, false);
+ SETTING_BOOL("materialui_optimize_landscape_layout", &settings->bools.menu_materialui_optimize_landscape_layout, true, DEFAULT_MATERIALUI_OPTIMIZE_LANDSCAPE_LAYOUT, false);
+ SETTING_BOOL("materialui_auto_rotate_nav_bar", &settings->bools.menu_materialui_auto_rotate_nav_bar, true, DEFAULT_MATERIALUI_AUTO_ROTATE_NAV_BAR, false);
#endif
#ifdef HAVE_RGUI
SETTING_BOOL("rgui_background_filler_thickness_enable", &settings->bools.menu_rgui_background_filler_thickness_enable, true, true, false);
@@ -1662,6 +1665,7 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
SETTING_OVERRIDE(RARCH_OVERRIDE_SETTING_LOG_TO_FILE);
SETTING_BOOL("log_to_file_timestamp", &settings->bools.log_to_file_timestamp, true, DEFAULT_LOG_TO_FILE_TIMESTAMP, false);
SETTING_BOOL("ai_service_enable", &settings->bools.ai_service_enable, DEFAULT_AI_SERVICE_ENABLE, false, false);
+ SETTING_BOOL("ai_service_pause", &settings->bools.ai_service_pause, true, DEFAULT_AI_SERVICE_PAUSE, false);
*size = count;
@@ -1806,7 +1810,8 @@ static struct config_uint_setting *populate_settings_uint(settings_t *settings,
SETTING_UINT("menu_font_color_blue", &settings->uints.menu_font_color_blue, true, menu_font_color_blue, false);
SETTING_UINT("menu_xmb_thumbnail_scale_factor", &settings->uints.menu_xmb_thumbnail_scale_factor, true, xmb_thumbnail_scale_factor, false);
#endif
- SETTING_UINT("materialui_menu_color_theme", &settings->uints.menu_materialui_color_theme, true, MATERIALUI_THEME_BLUE, false);
+ SETTING_UINT("materialui_menu_color_theme", &settings->uints.menu_materialui_color_theme, true, DEFAULT_MATERIALUI_THEME, false);
+ SETTING_UINT("materialui_menu_transition_animation", &settings->uints.menu_materialui_transition_animation, true, DEFAULT_MATERIALUI_TRANSITION_ANIM, false);
SETTING_UINT("menu_shader_pipeline", &settings->uints.menu_xmb_shader_pipeline, true, DEFAULT_MENU_SHADER_PIPELINE, false);
#ifdef HAVE_OZONE
SETTING_UINT("ozone_menu_color_theme", &settings->uints.menu_ozone_color_theme, true, 1, false);
diff --git a/configuration.h b/configuration.h
index 5f56806eda..0654b4487d 100644
--- a/configuration.h
+++ b/configuration.h
@@ -186,6 +186,8 @@ typedef struct settings
bool menu_show_video_layout;
#endif
bool menu_materialui_icons_enable;
+ bool menu_materialui_optimize_landscape_layout;
+ bool menu_materialui_auto_rotate_nav_bar;
bool menu_rgui_background_filler_thickness_enable;
bool menu_rgui_border_filler_thickness_enable;
bool menu_rgui_border_filler_enable;
@@ -303,6 +305,9 @@ typedef struct settings
bool bundle_finished;
bool bundle_assets_extract_enable;
+ /* Driver */
+ bool driver_switch_enable;
+
/* Misc. */
bool discord_enable;
bool threaded_data_runloop_enable;
@@ -377,6 +382,7 @@ typedef struct settings
bool scan_without_core_match;
bool ai_service_enable;
+ bool ai_service_pause;
} bools;
struct
@@ -528,6 +534,7 @@ typedef struct settings
unsigned menu_xmb_color_theme;
unsigned menu_xmb_thumbnail_scale_factor;
unsigned menu_materialui_color_theme;
+ unsigned menu_materialui_transition_animation;
unsigned menu_ozone_color_theme;
unsigned menu_font_color_red;
unsigned menu_font_color_green;
diff --git a/gfx/drivers_font/xdk360_fonts.cpp b/gfx/drivers_font/xdk360_fonts.cpp
deleted file mode 100644
index 6794358afd..0000000000
--- a/gfx/drivers_font/xdk360_fonts.cpp
+++ /dev/null
@@ -1,684 +0,0 @@
-/* RetroArch - A frontend for libretro.
- * Copyright (C) 2010-2014 - Hans-Kristian Arntzen
- * Copyright (C) 2011-2017 - Daniel De Matteis
- *
- * RetroArch is free software: you can redistribute it and/or modify it under the terms
- * of the GNU General Public License as published by the Free Software Found-
- * ation, either version 3 of the License, or (at your option) any later version.
- *
- * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with RetroArch.
- * If not, see .
- */
-
-#ifdef _XBOX
-#include
-#include
-#endif
-
-#include
-
-#include "../common/d3d_common.h"
-#include "../common/d3d9_common.h"
-#include "../font_driver.h"
-
-#include "../drivers/d3d_shaders/font.hlsl.d3d9.h"
-
-#define XPR0_MAGIC_VALUE 0x30525058
-#define XPR1_MAGIC_VALUE 0x31525058
-#define XPR2_MAGIC_VALUE 0x58505232
-
-#define FONT_SCALE(d3d) ((d3d->resolution_hd_enable) ? 2 : 1)
-#define CALCFONTFILEHEADERSIZE(x) ( sizeof(uint32_t) + (sizeof(float)* 4) + sizeof(uint16_t) + (sizeof(wchar_t)*(x)) )
-#define FONTFILEVERSION 5
-
-#ifdef _XBOX360
-struct XPR_HEADER
-{
- DWORD dwMagic;
- DWORD dwHeaderSize;
- DWORD dwDataSize;
-};
-#endif
-
-/* structure member offsets matter */
-struct XBRESOURCE
-{
- DWORD dwType;
- DWORD dwOffset;
- DWORD dwSize;
- char *strName;
-};
-
-enum
-{
- RESOURCETYPE_USERDATA = ( ( 'U' << 24 ) | ( 'S' << 16 ) | ( 'E' << 8 ) | ( 'R' ) ),
- RESOURCETYPE_TEXTURE = ( ( 'T' << 24 ) | ( 'X' << 16 ) | ( '2' << 8 ) | ( 'D' ) ),
- RESOURCETYPE_VERTEXBUFFER = ( ( 'V' << 24 ) | ( 'B' << 16 ) | ( 'U' << 8 ) | ( 'F' ) ),
- RESOURCETYPE_INDEXBUFFER = ( ( 'I' << 24 ) | ( 'B' << 16 ) | ( 'U' << 8 ) | ( 'F' ) ),
- RESOURCETYPE_EOF = 0xffffffff
-};
-
-class PackedResource
-{
- protected:
- BYTE* m_pSysMemData; /* Allocated memory for resource headers etc. */
- DWORD m_dwSysMemDataSize;
-
- BYTE* m_pVidMemData; /* Allocated memory for resource data, etc. */
- DWORD m_dwVidMemDataSize;
-
- XBRESOURCE* m_pResourceTags; /* Tags to associate names with the resources */
- DWORD m_dwNumResourceTags; /* Number of resource tags */
-
- public:
- /* Loads the resources out of the specified bundle */
- HRESULT Create(const char *strFilename, DWORD dwNumResourceTags,
- void *pResourceTags);
-
- void Destroy();
-
- BOOL m_bInitialized; /* Resource is fully initialized */
-
- /* Functions to retrieve resources by their name */
- void *GetData( const char* strName );
- LPDIRECT3DTEXTURE9 *GetTexture(const char* strName);
-
- /* Constructor/destructor */
- PackedResource();
- ~PackedResource();
-};
-
-LPDIRECT3DTEXTURE9 *PackedResource::GetTexture(const char* strName)
-{
- LPDIRECT3DRESOURCE9 pResource = (LPDIRECT3DRESOURCE9)GetData(strName);
- return (LPDIRECT3DTEXTURE9*)pResource;
-}
-
-PackedResource::PackedResource()
-{
- m_pSysMemData = NULL;
- m_pVidMemData = NULL;
- m_pResourceTags = NULL;
- m_dwSysMemDataSize = 0L;
- m_dwVidMemDataSize = 0L;
- m_dwNumResourceTags = 0L;
- m_bInitialized = false;
-}
-
-PackedResource::~PackedResource()
-{
- Destroy();
-}
-
-void *PackedResource::GetData(const char *strName)
-{
- if (!m_pResourceTags || !strName)
- return NULL;
-
- for (DWORD i = 0; i < m_dwNumResourceTags; i++)
- {
- if (string_is_equal_noncase(strName, m_pResourceTags[i].strName))
- return &m_pSysMemData[m_pResourceTags[i].dwOffset];
- }
-
- return NULL;
-}
-
-static INLINE void* AllocateContiguousMemory(DWORD Size, DWORD Alignment)
-{
- return XMemAlloc(Size, MAKE_XALLOC_ATTRIBUTES(0, 0, 0, 0, eXALLOCAllocatorId_GameMax,
- Alignment, XALLOC_MEMPROTECT_WRITECOMBINE, 0, XALLOC_MEMTYPE_PHYSICAL));
-}
-
-static INLINE void FreeContiguousMemory(void* pData)
-{
- return XMemFree(pData, MAKE_XALLOC_ATTRIBUTES(0, 0, 0, 0, eXALLOCAllocatorId_GameMax,
- 0, 0, 0, XALLOC_MEMTYPE_PHYSICAL));
-}
-
-HRESULT PackedResource::Create(const char *strFilename,
- DWORD dwNumResourceTags, void* pResourceTags)
-{
- unsigned i;
- DWORD dwNumBytesRead;
- XPR_HEADER xprh;
- HANDLE hFile = CreateFile(strFilename, GENERIC_READ, FILE_SHARE_READ, NULL,
- OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, NULL);
-
- if (hFile == INVALID_HANDLE_VALUE)
- return E_FAIL;
-
- if (!ReadFile(hFile, &xprh, sizeof(XPR_HEADER), &dwNumBytesRead, NULL) ||
- xprh.dwMagic != XPR2_MAGIC_VALUE)
- {
- CloseHandle(hFile);
- return E_FAIL;
- }
-
- /* Compute memory requirements */
- m_dwSysMemDataSize = xprh.dwHeaderSize;
- m_dwVidMemDataSize = xprh.dwDataSize;
-
- /* Allocate memory */
- m_pSysMemData = (BYTE*)malloc(m_dwSysMemDataSize);
-
- if (!m_pSysMemData)
- {
- m_dwSysMemDataSize = 0;
- return E_FAIL;
- }
-
- m_pVidMemData = (BYTE*)AllocateContiguousMemory(m_dwVidMemDataSize,
- XALLOC_PHYSICAL_ALIGNMENT_4K
- );
-
- if(!m_pVidMemData)
- {
- m_dwSysMemDataSize = 0;
- m_dwVidMemDataSize = 0;
- free(m_pSysMemData);
- m_pSysMemData = NULL;
- return E_FAIL;
- }
-
- /* Read in the data from the file */
- if( !ReadFile( hFile, m_pSysMemData, m_dwSysMemDataSize, &dwNumBytesRead, NULL) ||
- !ReadFile( hFile, m_pVidMemData, m_dwVidMemDataSize, &dwNumBytesRead, NULL))
- {
- CloseHandle( hFile);
- return E_FAIL;
- }
-
- /* Done with the file */
- CloseHandle( hFile);
-
- /* Extract resource table from the header data */
- m_dwNumResourceTags = *(DWORD*)(m_pSysMemData + 0);
- m_pResourceTags = (XBRESOURCE*)(m_pSysMemData + 4);
-
- /* Patch up the resources */
-
- for(i = 0; i < m_dwNumResourceTags; i++)
- {
- m_pResourceTags[i].strName = (char*)(m_pSysMemData + (DWORD)m_pResourceTags[i].strName);
- if((m_pResourceTags[i].dwType & 0xffff0000) == (RESOURCETYPE_TEXTURE & 0xffff0000))
- {
- D3DTexture *pTexture = (D3DTexture*)&m_pSysMemData[m_pResourceTags[i].dwOffset];
- XGOffsetBaseTextureAddress(pTexture, m_pVidMemData, m_pVidMemData);
- }
- }
-
- m_bInitialized = true;
-
- return S_OK;
-}
-
-void PackedResource::Destroy()
-{
- free(m_pSysMemData);
-
- if (m_pVidMemData != NULL)
- FreeContiguousMemory(m_pVidMemData);
-
- m_pSysMemData = NULL;
- m_pVidMemData = NULL;
- m_pResourceTags = NULL;
- m_dwSysMemDataSize = 0L;
- m_dwVidMemDataSize = 0L;
- m_dwNumResourceTags = 0L;
-
- m_bInitialized = false;
-}
-
-typedef struct GLYPH_ATTR
-{
- uint16_t tu1, tv1, tu2, tv2; /* Texture coordinates for the image. */
- int16_t wOffset; /* Pixel offset for glyph start. */
- int16_t wWidth; /* Pixel width of the glyph. */
- int16_t wAdvance; /* Pixels to advance after the glyph. */
- uint16_t wMask;
-} GLYPH_ATTR;
-
-typedef struct
-{
- D3DVertexDeclaration *m_pFontVertexDecl;
- D3DVertexShader *m_pFontVertexShader;
- D3DPixelShader *m_pFontPixelShader;
-} Font_Locals_t;
-
-typedef struct
-{
- Font_Locals_t s_FontLocals;
- d3d9_video_t *d3d;
- uint32_t m_dwSavedState;
- uint32_t m_cMaxGlyph; /* Number of entries in the translator table. */
- uint32_t m_dwNumGlyphs; /* Number of valid glyphs. */
- float m_fFontHeight; /* Height of the font strike in pixels. */
- float m_fFontTopPadding; /* Padding above the strike zone. */
- float m_fFontBottomPadding; /* Padding below the strike zone. */
- float m_fFontYAdvance; /* Number of pixels to move the cursor for a line feed. */
- wchar_t * m_TranslatorTable; /* ASCII to glyph lookup table. */
- LPDIRECT3DTEXTURE9 m_pFontTexture;
- const GLYPH_ATTR* m_Glyphs; /* Array of glyphs. */
-} xdk360_video_font_t;
-
-typedef struct
-{
- uint32_t m_dwFileVersion; /* Version of the font file (Must match FONTFILEVERSION). */
- float m_fFontHeight; /* Height of the font strike in pixels. */
- float m_fFontTopPadding; /* Padding above the strike zone. */
- float m_fFontBottomPadding; /* Padding below the strike zone. */
- float m_fFontYAdvance; /* Number of pixels to move the cursor for a line feed. */
- uint16_t m_cMaxGlyph; /* Number of font characters (Should be an odd number to maintain DWORD Alignment). */
- wchar_t m_TranslatorTable[1]; /* ASCII to Glyph lookup table, NOTE: It's m_cMaxGlyph+1 in size. */
-} FontFileHeaderImage_t;
-
-typedef struct
-{
- uint32_t m_dwNumGlyphs; /* Size of font strike array (First entry is the unknown glyph). */
- GLYPH_ATTR m_Glyphs[1]; /* Array of font strike uv's etc... NOTE: It's m_dwNumGlyphs in size. */
-} FontFileStrikesImage_t;
-
-static PackedResource m_xprResource;
-
-static bool xdk360_video_font_create_shaders(xdk360_video_font_t * font, LPDIRECT3DDEVICE9 dev)
-{
- ID3DXBuffer* pShaderCode = NULL;
-
- static const D3DVERTEXELEMENT9 decl[] =
- {
- { 0, 0, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 },
- { 0, 8, D3DDECLTYPE_USHORT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0 },
- { 0, 12, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 1 },
- D3DDECL_END()
- };
-
- if (font->s_FontLocals.m_pFontVertexDecl)
- {
- font->s_FontLocals.m_pFontVertexDecl->AddRef();
- font->s_FontLocals.m_pFontVertexShader->AddRef();
- font->s_FontLocals.m_pFontPixelShader->AddRef();
- return true;
- }
-
- if (!d3d9_vertex_declaration_new(dev, decl, (void**)&font->s_FontLocals.m_pFontVertexDecl))
- goto error;
-
- if (!d3d9x_compile_shader( font_hlsl_d3d9_program, sizeof(font_hlsl_d3d9_program)-1 ,
- NULL, NULL, "main_vertex", "vs.2.0", 0, &pShaderCode, NULL, NULL ))
- goto error;
-
- if (!d3d9_create_vertex_shader(dev, (const DWORD*)pShaderCode->GetBufferPointer(),
- (void**)&font->s_FontLocals.m_pFontVertexShader ))
- goto error;
-
- d3d9x_buffer_release(pShaderCode);
-
- if (!d3d9x_compile_shader(font_hlsl_d3d9_program, sizeof(font_hlsl_d3d9_program)-1 ,
- NULL, NULL, "main_fragment", "ps.2.0", 0,&pShaderCode, NULL, NULL ))
- goto error;
-
- if (!d3d9_create_pixel_shader(dev, (DWORD*)pShaderCode->GetBufferPointer(),
- (void**)&font->s_FontLocals.m_pFontPixelShader))
- goto error;
-
- d3d9x_buffer_release(pShaderCode);
-
- return true;
-
-error:
- if (pShaderCode)
- d3d9x_buffer_release(pShaderCode);
- d3d9_free_pixel_shader((LPDIRECT3DDEVICE9)font->d3d->dev, font->s_FontLocals.m_pFontPixelShader);
- d3d9_free_vertex_shader((LPDIRECT3DDEVICE9)font->d3d->dev, font->s_FontLocals.m_pFontVertexShader);
- d3d9_vertex_declaration_free(font->s_FontLocals.m_pFontVertexDecl);
- font->s_FontLocals.m_pFontPixelShader = NULL;
- font->s_FontLocals.m_pFontVertexShader = NULL;
- font->s_FontLocals.m_pFontVertexDecl = NULL;
-
- return false;
-}
-
-static void *xdk360_init_font(void *video_data,
- const char *font_path, float font_size,
- bool is_threaded)
-{
- uint32_t dwFileVersion;
- const void *pFontData = NULL;
- void *pFontTexture = NULL;
- const uint8_t * pData = NULL;
- xdk360_video_font_t *font = (xdk360_video_font_t*)calloc(1, sizeof(*font));
-
- if (!font)
- return NULL;
-
- (void)font_size;
-
- font->d3d = (d3d9_video_t*)video_data;
-
- font->m_pFontTexture = NULL;
- font->m_dwNumGlyphs = 0L;
- font->m_Glyphs = NULL;
- font->m_cMaxGlyph = 0;
- font->m_TranslatorTable = NULL;
-
- /* Create the font. */
- if (FAILED( m_xprResource.Create(font_path, 0, NULL)))
- goto error;
-
- pFontTexture = (LPDIRECT3DTEXTURE9)m_xprResource.GetTexture( "FontTexture" );
- pFontData = m_xprResource.GetData( "FontData");
-
- /* Save a copy of the texture. */
- font->m_pFontTexture = (LPDIRECT3DTEXTURE9)pFontTexture;
-
- /* Check version of file (to make sure it matches up with the FontMaker tool). */
- pData = (const uint8_t*)pFontData;
- dwFileVersion = ((const FontFileHeaderImage_t *)pData)->m_dwFileVersion;
-
- if (dwFileVersion != FONTFILEVERSION)
- {
- RARCH_ERR("Incorrect version number on font file.\n");
- goto error;
- }
-
- font->m_fFontHeight = ((const FontFileHeaderImage_t *)pData)->m_fFontHeight;
- font->m_fFontTopPadding = ((const FontFileHeaderImage_t *)pData)->m_fFontTopPadding;
- font->m_fFontBottomPadding = ((const FontFileHeaderImage_t *)pData)->m_fFontBottomPadding;
- font->m_fFontYAdvance = ((const FontFileHeaderImage_t *)pData)->m_fFontYAdvance;
-
- /* Point to the translator string which immediately follows the 4 floats. */
- font->m_cMaxGlyph = ((const FontFileHeaderImage_t *)pData)->m_cMaxGlyph;
- font->m_TranslatorTable = const_cast((const FontFileHeaderImage_t *)pData)->m_TranslatorTable;
-
- pData += CALCFONTFILEHEADERSIZE(font->m_cMaxGlyph + 1);
-
- /* Read the glyph attributes from the file. */
- font->m_dwNumGlyphs = ((const FontFileStrikesImage_t *)pData)->m_dwNumGlyphs;
- font->m_Glyphs = ((const FontFileStrikesImage_t *)pData)->m_Glyphs;
-
- /* Create the vertex and pixel shaders for rendering the font */
- if (!xdk360_video_font_create_shaders(font, (LPDIRECT3DDEVICE9)font->d3d->dev))
- {
- RARCH_ERR( "Could not create font shaders.\n" );
- goto error;
- }
-
- RARCH_LOG("Successfully initialized D3D9 HLSL fonts.\n");
- return font;
-error:
- RARCH_ERR("Could not initialize D3D9 HLSL fonts.\n");
- if (font)
- free(font);
- return NULL;
-}
-
-static void xdk360_free_font(void *data, bool is_threaded)
-{
- xdk360_video_font_t *font = (xdk360_video_font_t*)data;
-
- if (!font)
- return;
-
- /* Destroy the font */
- font->m_pFontTexture = NULL;
- font->m_dwNumGlyphs = 0L;
- font->m_Glyphs = NULL;
- font->m_cMaxGlyph = 0;
- font->m_TranslatorTable = NULL;
-
- d3d9_free_pixel_shader((LPDIRECT3DDEVICE9)font->d3d->dev, font->s_FontLocals.m_pFontPixelShader);
- d3d9_free_vertex_shader((LPDIRECT3DDEVICE9)font->d3d->dev, font->s_FontLocals.m_pFontVertexShader);
- d3d9_vertex_declaration_free(font->s_FontLocals.m_pFontVertexDecl);
-
- font->s_FontLocals.m_pFontPixelShader = NULL;
- font->s_FontLocals.m_pFontVertexShader = NULL;
- font->s_FontLocals.m_pFontVertexDecl = NULL;
-
- if (m_xprResource.m_bInitialized)
- m_xprResource.Destroy();
-
- free(font);
- font = NULL;
-}
-
-static void xdk360_render_msg_post(xdk360_video_font_t * font)
-{
- LPDIRECT3DDEVICE9 dev;
- if (!font || !font->d3d)
- return;
- dev = (LPDIRECT3DDEVICE9)font->d3d->dev;
-
- if (!dev)
- return;
-
- d3d9_set_texture(dev, 0, NULL);
- d3d9_set_vertex_declaration(dev, NULL);
- d3d9_set_vertex_shader(dev, NULL);
- d3d9_set_pixel_shader(dev, NULL);
- d3d9_set_render_state(dev, D3DRS_VIEWPORTENABLE, font->m_dwSavedState);
-}
-
-static void xdk360_render_msg_pre(xdk360_video_font_t * font)
-{
- float vTexScale[4];
- D3DSURFACE_DESC TextureDesc;
- LPDIRECT3DDEVICE9 dev;
-
- if (!font || !font->d3d)
- return;
-
- dev = (LPDIRECT3DDEVICE9)font->d3d->dev;
-
- if (!dev)
- return;
-
- /* Save state. */
- d3d9_get_render_state(font->d3d->dev, D3DRS_VIEWPORTENABLE,
- (DWORD*)&font->m_dwSavedState );
-
- /* Set the texture scaling factor as a vertex shader constant. */
- /* Get the description */
- d3d9_texture_get_level_desc(font->m_pFontTexture, 0, &TextureDesc);
-
- /* Set render state. */
- d3d9_set_texture(dev, 0, font->m_pFontTexture);
-
- vTexScale[0] = 1.0f / TextureDesc.Width;
- vTexScale[1] = 1.0f / TextureDesc.Height;
- vTexScale[2] = 0.0f;
- vTexScale[3] = 0.0f;
-
- d3d9_set_render_state(dev, D3DRS_VIEWPORTENABLE, FALSE);
- d3d9_set_vertex_declaration(dev, font->s_FontLocals.m_pFontVertexDecl);
- d3d9_set_vertex_shader(dev, font->s_FontLocals.m_pFontVertexShader);
- d3d9_set_pixel_shader(dev, font->s_FontLocals.m_pFontPixelShader);
- d3d9_set_vertex_shader_constantf(dev, 2, vTexScale, 1);
-}
-
-static void xdk360_draw_text(xdk360_video_font_t *font,
- float x, float y, const wchar_t * strText)
-{
- uint32_t dwNumChars;
- float vColor[4], m_fCursorX, m_fCursorY;
- volatile float *pVertex = NULL;
- LPDIRECT3DDEVICE9 dev = (LPDIRECT3DDEVICE9)font->d3d->dev;
-
- /* Set the color as a vertex shader constant. */
- vColor[0] = ((0xffffffff & 0x00ff0000) >> 16L) / 255.0f;
- vColor[1] = ((0xffffffff & 0x0000ff00) >> 8L) / 255.0f;
- vColor[2] = ((0xffffffff & 0x000000ff) >> 0L) / 255.0f;
- vColor[3] = ((0xffffffff & 0xff000000) >> 24L) / 255.0f;
-
- d3d9_set_vertex_shader_constantf(dev, 1, vColor, 1);
-
- m_fCursorX = floorf(x);
- m_fCursorY = floorf(y);
-
- /* Adjust for padding. */
- y -= font->m_fFontTopPadding;
-
- /* Begin drawing the vertices
- * Declared as volatile to force writing in ascending
- * address order.
- *
- * It prevents out of sequence writing in write combined
- * memory.
- */
-
- dwNumChars = wcslen(strText);
-#ifdef __cplusplus
- dev->BeginVertices(D3DPT_QUADLIST, 4 * dwNumChars,
- sizeof(XMFLOAT4), (void**)&pVertex);
-#else
- D3DDevice_BeginVertices(dev, D3DPT_QUADLIST, 4 * dwNumChars,
- sizeof(XMFLOAT4), (void**)&pVertex);
-#endif
-
- /* Draw four vertices for each glyph. */
- while (*strText)
- {
- float fOffset, fAdvance, fWidth, fHeight;
-#ifdef MSB_FIRST
- uint32_t tu1, tu2, tv1, tv2;
-#endif
- const GLYPH_ATTR *pGlyph;
- wchar_t letter = *strText++; /* Get the current letter in the string */
-
- /* Handle the newline character. */
- if (letter == L'\n')
- {
- m_fCursorX = x;
- m_fCursorY += font->m_fFontYAdvance * FONT_SCALE(font->d3d);
- continue;
- }
-
- /* Translate unprintable characters. */
- if (letter <= font->m_cMaxGlyph)
- pGlyph = &font->m_Glyphs[font->m_TranslatorTable[letter]];
- else
- pGlyph = &font->m_Glyphs[0];
-
- fOffset = FONT_SCALE(font->d3d) * (float)pGlyph->wOffset;
- fAdvance = FONT_SCALE(font->d3d) * (float)pGlyph->wAdvance;
- fWidth = FONT_SCALE(font->d3d) * (float)pGlyph->wWidth;
- fHeight = FONT_SCALE(font->d3d) * font->m_fFontHeight;
-
- m_fCursorX += fOffset;
-
- /* Add the vertices to draw this glyph. */
-
-#ifdef MSB_FIRST
- /* Convert shorts to 32 bit longs for in register merging */
- tu1 = pGlyph->tu1;
- tv1 = pGlyph->tv1;
- tu2 = pGlyph->tu2;
- tv2 = pGlyph->tv2;
-#endif
-
- /* NOTE: The vertexes are 2 floats for the screen coordinates,
- * followed by two USHORTS for the u/vs of the character,
- * terminated with the ARGB 32 bit color.
- *
- * This makes for 16 bytes per vertex data (Easier to read)
- *
- * Second NOTE: The U/V coordinates are merged and written
- * using a DWORD due to the write combining hardware
- * being only able to handle 32, 64 and 128 writes.
- *
- * Never store to write combined memory with 8 or 16bit
- * instructions. You've been warned.
- */
-
- /* Setup the vertex/screen coordinates */
- pVertex[0] = m_fCursorX;
- pVertex[1] = m_fCursorY;
- pVertex[3] = 0;
- pVertex[4] = m_fCursorX + fWidth;
- pVertex[5] = m_fCursorY;
- pVertex[7] = 0;
- pVertex[8] = m_fCursorX + fWidth;
- pVertex[9] = m_fCursorY + fHeight;
- pVertex[11] = 0;
- pVertex[12] = m_fCursorX;
- pVertex[13] = m_fCursorY + fHeight;
-#ifdef MSB_FIRST
- ((volatile uint32_t *)pVertex)[2] = (tu1 << 16) | tv1; /* Merged using big endian rules */
- ((volatile uint32_t *)pVertex)[6] = (tu2 << 16) | tv1; /* Merged using big endian rules */
- ((volatile uint32_t*)pVertex)[10] = (tu2 << 16) | tv2; /* Merged using big endian rules */
- ((volatile uint32_t*)pVertex)[14] = (tu1 << 16) | tv2; /* Merged using big endian rules */
-#endif
- pVertex[15] = 0;
- pVertex += 16;
-
- m_fCursorX += fAdvance;
-
- dwNumChars--;
- }
-
- /* Since we allocated vertex data space
- * based on the string length, we now need to
- * add some dummy verts for any skipped
- * characters (like newlines, etc.)
- */
- while (dwNumChars)
- {
- unsigned i;
- for (i = 0; i < 16; i++)
- pVertex[i] = 0;
-
- pVertex += 16;
- dwNumChars--;
- }
-
-#ifdef __cplusplus
- dev->EndVertices();
-#else
- D3DDevice_EndVertices(dev);
-#endif
-}
-
-static void xdk360_render_msg(
- video_frame_info_t *video_info,
- void *data, const char *str_msg,
- const struct font_params *params)
-{
- float x, y;
- wchar_t msg[PATH_MAX_LENGTH];
- xdk360_video_font_t *font = (xdk360_video_font_t*)data;
-
- if (params)
- {
- x = params->x;
- y = params->y;
- }
- else
- {
- x = font->d3d->resolution_hd_enable ? 160 : 100;
- y = 120;
- }
-
- mbstowcs(msg, str_msg, sizeof(msg) / sizeof(wchar_t));
-
- if (msg || msg[0] != L'\0')
- {
- xdk360_render_msg_pre(font);
- xdk360_draw_text(font, x, y, msg);
- xdk360_render_msg_post(font);
- }
-}
-
-font_renderer_t d3d_xbox360_font = {
- xdk360_init_font,
- xdk360_free_font,
- xdk360_render_msg,
- "xdk360_fonts",
- NULL, /* get_glyph */
- NULL, /* bind_block */
- NULL, /* flush */
- NULL /* get_message_width */
-};
diff --git a/gfx/font_driver.c b/gfx/font_driver.c
index d449f3c2ee..baee07d0ee 100644
--- a/gfx/font_driver.c
+++ b/gfx/font_driver.c
@@ -119,9 +119,7 @@ static bool d3d8_font_init_first(
#ifdef HAVE_D3D9
static const font_renderer_t *d3d9_font_backends[] = {
-#if defined(_XBOX)
- &d3d_xbox360_font,
-#elif defined(_WIN32) && defined(HAVE_D3DX)
+#if defined(_WIN32) && defined(HAVE_D3DX)
&d3d_win32_font,
#endif
NULL
diff --git a/gfx/font_driver.h b/gfx/font_driver.h
index 780905ac5d..22d878b625 100644
--- a/gfx/font_driver.h
+++ b/gfx/font_driver.h
@@ -162,7 +162,6 @@ int font_driver_get_line_height(void *font_data, float scale);
extern font_renderer_t gl_raster_font;
extern font_renderer_t gl_core_raster_font;
extern font_renderer_t gl1_raster_font;
-extern font_renderer_t d3d_xbox360_font;
extern font_renderer_t d3d_xdk1_font;
extern font_renderer_t d3d_win32_font;
extern font_renderer_t ps2_font;
diff --git a/gfx/video_crt_switch.c b/gfx/video_crt_switch.c
index ce34e837a5..af3a9e78d0 100644
--- a/gfx/video_crt_switch.c
+++ b/gfx/video_crt_switch.c
@@ -30,7 +30,7 @@
#if defined(HAVE_VIDEOCORE)
#include "include/userland/interface/vmcs_host/vc_vchi_gencmd.h"
-static void crt_rpi_switch(int width, int height, float hz);
+static void crt_rpi_switch(int width, int height, float hz, int xoffset);
#endif
static unsigned ra_core_width = 0;
@@ -99,7 +99,7 @@ static void switch_res_crt(unsigned width, unsigned height)
video_display_server_set_resolution(width, height,
ra_set_core_hz, ra_core_hz, crt_center_adjust, crt_index, crt_center_adjust);
#if defined(HAVE_VIDEOCORE)
- crt_rpi_switch(width, height, ra_core_hz);
+ crt_rpi_switch(width, height, ra_core_hz, crt_center_adjust);
video_monitor_set_refresh_rate(ra_core_hz);
crt_switch_driver_reinit();
#endif
@@ -259,7 +259,7 @@ int crt_compute_dynamic_width(int width)
}
#if defined(HAVE_VIDEOCORE)
-static void crt_rpi_switch(int width, int height, float hz)
+static void crt_rpi_switch(int width, int height, float hz, int xoffset)
{
char buffer[1024];
VCHI_INSTANCE_T vchi_instance;
@@ -289,27 +289,18 @@ static void crt_rpi_switch(int width, int height, float hz)
video_monitor_set_refresh_rate(hz);
/* following code is the mode line generator */
-
- pwidth = width;
-
- if (height < 400 && width > 400)
- pwidth = width / 2;
-
- roundw = roundf((float)pwidth / (float)height * 100) / 100;
-
- if (height > width)
- roundw = roundf((float)height / (float)width * 100) / 100;
-
- if (roundw > 1.35)
- roundw = 1.25;
-
- if (roundw < 1.20)
- roundw = 1.34;
- hfp = width * 0.065;
-
- hsp = width * 0.1433-hfp+(crt_center_adjust*4);
-
- hbp = width * 0.3-hsp-hfp;
+ hsp = (width * 0.117) - (xoffset*4);
+ if (width < 700)
+ {
+ hfp = (width * 0.065);
+ hbp = width * 0.35-hsp-hfp;
+ }else {
+ hfp = (width * 0.033) + (width / 112);
+ hbp = (width * 0.225) + (width /58);
+ xoffset = xoffset*2;
+ }
+
+ hmax = hbp;
if (height < 241)
vmax = 261;
diff --git a/griffin/griffin_cpp.cpp b/griffin/griffin_cpp.cpp
index 7e659defef..1c1425374c 100644
--- a/griffin/griffin_cpp.cpp
+++ b/griffin/griffin_cpp.cpp
@@ -123,10 +123,6 @@ VIDEO DRIVER
/*============================================================
FONTS
============================================================ */
-#if defined(_XBOX360)
-#include "../gfx/drivers_font/xdk360_fonts.cpp"
-#endif
-
#ifdef WANT_GLSLANG
#ifdef _WIN32
#include "../deps/glslang/glslang/glslang/OSDependent/Windows/ossource.cpp"
diff --git a/input/drivers/switch_input.c b/input/drivers/switch_input.c
index a8ca835468..ebc8001f2b 100644
--- a/input/drivers/switch_input.c
+++ b/input/drivers/switch_input.c
@@ -122,6 +122,10 @@ typedef struct switch_input
Touch finger[MAX_NUM_FINGERS]; /* keep track of finger status for touch mouse */
DraggingType multi_finger_dragging; /* keep track whether we are currently drag-and-dropping */
int32_t simulated_click_start_time[2]; /* initiation time of last simulated left or right click (zero if no click) */
+
+ /* sensor handles */
+ uint32_t sixaxis_handles[DEFAULT_MAX_PADS][4];
+ unsigned sixaxis_handles_count[DEFAULT_MAX_PADS];
#endif
} switch_input_t;
@@ -805,12 +809,21 @@ void finish_simulated_mouse_clicks(switch_input_t *sw, uint64_t currentTime)
static void switch_input_free_input(void *data)
{
+ unsigned i,j;
switch_input_t *sw = (switch_input_t*) data;
- if (sw && sw->joypad)
- sw->joypad->destroy();
+ if (sw)
+ {
+ if(sw->joypad)
+ sw->joypad->destroy();
- free(sw);
+ for(i = 0; i < DEFAULT_MAX_PADS; i++)
+ if(sw->sixaxis_handles_count[i] > 0)
+ for(j = 0; j < sw->sixaxis_handles_count[i]; j++)
+ hidStopSixAxisSensor(sw->sixaxis_handles[i][j]);
+
+ free(sw);
+ }
#ifdef HAVE_LIBNX
hidExit();
@@ -844,7 +857,6 @@ static void* switch_input_init(const char *joypad_driver)
sw->mouse_y = 0;
sw->mouse_previous_report = 0;
-
/* touch mouse init */
sw->touch_mouse_indirect = true; /* direct mode is not calibrated it seems */
sw->touch_mouse_speed_factor = 1.0;
@@ -855,6 +867,9 @@ static void* switch_input_init(const char *joypad_driver)
for (i = 0; i < 2; i++)
sw->simulated_click_start_time[i] = 0;
+
+ for(i = 0; i < DEFAULT_MAX_PADS; i++)
+ sw->sixaxis_handles_count[i] = 0;
#endif
return sw;
@@ -900,19 +915,112 @@ static bool switch_input_set_rumble(void *data, unsigned port,
#endif
}
+static bool switch_input_set_sensor_state(void *data, unsigned port,
+ enum retro_sensor_action action, unsigned event_rate)
+{
+#ifdef HAVE_LIBNX
+ unsigned i, handles_count;
+ bool available;
+ switch_input_t *sw = (switch_input_t*) data;
+
+ if(!sw)
+ return false;
+
+ switch(action)
+ {
+ case RETRO_SENSOR_ILLUMINANCE_ENABLE:
+ available = false;
+ appletIsIlluminanceAvailable(&available);
+ return available;
+
+ case RETRO_SENSOR_ILLUMINANCE_DISABLE:
+ case RETRO_SENSOR_ACCELEROMETER_DISABLE:
+ case RETRO_SENSOR_GYROSCOPE_DISABLE:
+ return true;
+
+ case RETRO_SENSOR_ACCELEROMETER_ENABLE:
+ case RETRO_SENSOR_GYROSCOPE_ENABLE:
+ if(port < DEFAULT_MAX_PADS && sw->sixaxis_handles_count[port] == 0)
+ {
+ hidGetSixAxisSensorHandles(&sw->sixaxis_handles[port][0], 2, port, TYPE_JOYCON_PAIR);
+
+ hidGetSixAxisSensorHandles(&sw->sixaxis_handles[port][2], 1, port, TYPE_PROCONTROLLER);
+
+ if(port == 0)
+ {
+ hidGetSixAxisSensorHandles(&sw->sixaxis_handles[port][3], 1, CONTROLLER_HANDHELD, TYPE_HANDHELD);
+ handles_count = 4;
+ }
+ else
+ {
+ handles_count = 3;
+ }
+
+ for(i = 0; i < handles_count; i++) {
+ hidStartSixAxisSensor(sw->sixaxis_handles[port][i]);
+ }
+
+ sw->sixaxis_handles_count[port] = handles_count;
+ }
+ return true;
+ }
+#endif
+
+ return false;
+}
+
+static float switch_input_get_sensor_input(void *data,
+ unsigned port, unsigned id)
+{
+#ifdef HAVE_LIBNX
+ float f;
+ SixAxisSensorValues sixaxis;
+
+ if(id >= RETRO_SENSOR_ACCELEROMETER_X && id <= RETRO_SENSOR_GYROSCOPE_Z)
+ {
+ hidSixAxisSensorValuesRead(&sixaxis, port == 0 ? CONTROLLER_P1_AUTO : port, 1);
+
+ switch(id)
+ {
+ case RETRO_SENSOR_ACCELEROMETER_X:
+ return sixaxis.accelerometer.x;
+ case RETRO_SENSOR_ACCELEROMETER_Y:
+ return sixaxis.accelerometer.y;
+ case RETRO_SENSOR_ACCELEROMETER_Z:
+ return sixaxis.accelerometer.z;
+ case RETRO_SENSOR_GYROSCOPE_X:
+ return sixaxis.gyroscope.x;
+ case RETRO_SENSOR_GYROSCOPE_Y:
+ return sixaxis.gyroscope.y;
+ case RETRO_SENSOR_GYROSCOPE_Z:
+ return sixaxis.gyroscope.z;
+ }
+
+ }
+
+ if(id == RETRO_SENSOR_ILLUMINANCE)
+ {
+ appletGetCurrentIlluminance(&f);
+ return f;
+ }
+#endif
+
+ return 0.0f;
+}
+
input_driver_t input_switch = {
- switch_input_init,
- switch_input_poll,
- switch_input_state,
- switch_input_free_input,
- NULL,
- NULL,
- switch_input_get_capabilities,
- "switch",
- switch_input_grab_mouse,
- NULL,
- switch_input_set_rumble,
- switch_input_get_joypad_driver,
- NULL,
+ switch_input_init,
+ switch_input_poll,
+ switch_input_state,
+ switch_input_free_input,
+ switch_input_set_sensor_state,
+ switch_input_get_sensor_input,
+ switch_input_get_capabilities,
+ "switch",
+ switch_input_grab_mouse,
+ NULL,
+ switch_input_set_rumble,
+ switch_input_get_joypad_driver,
+ NULL,
false
};
diff --git a/intl/msg_hash_ar.h b/intl/msg_hash_ar.h
index d443d00328..9ec31fa429 100644
--- a/intl/msg_hash_ar.h
+++ b/intl/msg_hash_ar.h
@@ -3885,7 +3885,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_URL,
MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_ENABLE,
"AI Service Enabled")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE,
- "Pauses gameplay during translation (Image mode), or continues to run (Speech mode)")
+ "Show translation as a text overlay (Image mode), or play as Text-To-Speech (Speech mode)")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_URL,
"A http:// url pointing to the translation service to use.")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_ENABLE,
diff --git a/intl/msg_hash_chs.h b/intl/msg_hash_chs.h
index 492f454265..467b7fad1e 100644
--- a/intl/msg_hash_chs.h
+++ b/intl/msg_hash_chs.h
@@ -4903,7 +4903,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_URL,
MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_ENABLE,
"AI Service Enabled")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE,
- "Pauses gameplay during translation (Image mode), or continues to run (Speech mode)")
+ "Show translation as a text overlay (Image mode), or play as Text-To-Speech (Speech mode)")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_URL,
"A http:// url pointing to the translation service to use.")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_ENABLE,
diff --git a/intl/msg_hash_cht.h b/intl/msg_hash_cht.h
index 8acd016bbf..938d76a184 100644
--- a/intl/msg_hash_cht.h
+++ b/intl/msg_hash_cht.h
@@ -3661,7 +3661,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_URL,
MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_ENABLE,
"AI Service Enabled")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE,
- "Pauses gameplay during translation (Image mode), or continues to run (Speech mode)")
+ "Show translation as a text overlay (Image mode), or play as Text-To-Speech (Speech mode)")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_URL,
"A http:// url pointing to the translation service to use.")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_ENABLE,
diff --git a/intl/msg_hash_de.h b/intl/msg_hash_de.h
index 15fa864349..e4112f4e4c 100644
--- a/intl/msg_hash_de.h
+++ b/intl/msg_hash_de.h
@@ -3790,7 +3790,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_URL,
MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_ENABLE,
"AI Service Enabled")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE,
- "Pauses gameplay during translation (Image mode), or continues to run (Speech mode)")
+ "Show translation as a text overlay (Image mode), or play as Text-To-Speech (Speech mode)")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_URL,
"A http:// url pointing to the translation service to use.")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_ENABLE,
diff --git a/intl/msg_hash_el.h b/intl/msg_hash_el.h
index 5c51a6d65b..cd5e5c204e 100644
--- a/intl/msg_hash_el.h
+++ b/intl/msg_hash_el.h
@@ -7860,7 +7860,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_URL,
MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_ENABLE,
"AI Service Enabled")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE,
- "Pauses gameplay during translation (Image mode), or continues to run (Speech mode)")
+ "Show translation as a text overlay (Image mode), or play as Text-To-Speech (Speech mode)")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_URL,
"A http:// url pointing to the translation service to use.")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_ENABLE,
diff --git a/intl/msg_hash_eo.h b/intl/msg_hash_eo.h
index efeed229a4..fc25c307cc 100644
--- a/intl/msg_hash_eo.h
+++ b/intl/msg_hash_eo.h
@@ -3549,7 +3549,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_URL,
MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_ENABLE,
"AI Service Enabled")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE,
- "Pauses gameplay during translation (Image mode), or continues to run (Speech mode)")
+ "Show translation as a text overlay (Image mode), or play as Text-To-Speech (Speech mode)")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_URL,
"A http:// url pointing to the translation service to use.")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_ENABLE,
diff --git a/intl/msg_hash_es.h b/intl/msg_hash_es.h
index b4e9134fb2..bf480ee760 100644
--- a/intl/msg_hash_es.h
+++ b/intl/msg_hash_es.h
@@ -8010,7 +8010,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_URL,
MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_ENABLE,
"AI Service Enabled")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE,
- "Pauses gameplay during translation (Image mode), or continues to run (Speech mode)")
+ "Show translation as a text overlay (Image mode), or play as Text-To-Speech (Speech mode)")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_URL,
"A http:// url pointing to the translation service to use.")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_ENABLE,
diff --git a/intl/msg_hash_fr.c b/intl/msg_hash_fr.c
index 1c573127cd..8331f34291 100644
--- a/intl/msg_hash_fr.c
+++ b/intl/msg_hash_fr.c
@@ -1,4 +1,4 @@
-/* RetroArch - A frontend for libretro.
+/* RetroArch - A frontend for libretro.
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2014-2017 - Jean-André Santoni
* Copyright (C) 2016-2019 - Brad Parker
@@ -317,7 +317,7 @@ int menu_hash_get_help_fr_enum(enum msg_hash_enums msg, char *s, size_t len)
snprintf(s, len, "Crée une capture d'écran. \n"
" \n"
"La capture d'écran sera sauvegardée \n"
- "dans le dossier des captures d'écran.");
+ "dans le dossier assigné aux captures d'écran.");
break;
case MENU_ENUM_LABEL_ADD_TO_FAVORITES:
snprintf(s, len, "Ajoute l'entrée à vos favoris.");
@@ -357,7 +357,7 @@ int menu_hash_get_help_fr_enum(enum msg_hash_enums msg, char *s, size_t len)
snprintf(s, len,
"Dossier de base de données de contenu. \n"
" \n"
- "emplacement du dossier de la base de données \n"
+ "Emplacement du dossier de la base de données \n"
"de contenu.");
break;
case MENU_ENUM_LABEL_THUMBNAILS_DIRECTORY:
@@ -596,7 +596,7 @@ int menu_hash_get_help_fr_enum(enum msg_hash_enums msg, char *s, size_t len)
break;
case MENU_ENUM_LABEL_FPS_SHOW:
snprintf(s, len,
- "Permet d'afficher les images par seconde \n"
+ "Permet d'afficher le nombre d'images par seconde \n"
"actuelles.");
break;
case MENU_ENUM_LABEL_MEMORY_SHOW:
@@ -630,7 +630,7 @@ int menu_hash_get_help_fr_enum(enum msg_hash_enums msg, char *s, size_t len)
break;
case MENU_ENUM_LABEL_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS_PORT:
snprintf(s, len,
- "Selectionne le port d'écoute des touches pressées affichées \n"
+ "Sélectionne le port d'écoute des touches pressées \n"
"affichées sur la surimpression à l'écran.");
break;
case MENU_ENUM_LABEL_OVERLAY_PRESET:
@@ -640,6 +640,21 @@ int menu_hash_get_help_fr_enum(enum msg_hash_enums msg, char *s, size_t len)
case MENU_ENUM_LABEL_OVERLAY_OPACITY:
snprintf(s, len,
"Opacité de la surimpression.");
+#ifdef HAVE_VIDEO_LAYOUT
+ case MENU_ENUM_LABEL_VIDEO_LAYOUT_ENABLE:
+ snprintf(s, len,
+ "Active ou désactive la disposition d'affichage actuelle.");
+ break;
+ case MENU_ENUM_LABEL_VIDEO_LAYOUT_PATH:
+ snprintf(s, len,
+ "Emplacement de la disposition d'affichage.");
+ break;
+ case MENU_ENUM_LABEL_VIDEO_LAYOUT_SELECTED_VIEW:
+ snprintf(s, len,
+ "Les dispositions d'affichage peuvent contenir plusieurs vues. \n"
+ "Sélectionne une vue.");
+ break;
+#endif
break;
case MENU_ENUM_LABEL_INPUT_BIND_TIMEOUT:
snprintf(s, len,
@@ -740,7 +755,7 @@ int menu_hash_get_help_fr_enum(enum msg_hash_enums msg, char *s, size_t len)
"au lieu de devoir passer par le navigateur de fichiers\n"
"à chaque fois.\n"
"\n"
- "REMERQUE : le contenu de certains cœurs peut toujours\n"
+ "REMARQUE : le contenu de certains cœurs peut toujours\n"
"ne pas être analysable.",
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ADD_CONTENT_LIST),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_DIRECTORY),
@@ -820,7 +835,7 @@ int menu_hash_get_help_fr_enum(enum msg_hash_enums msg, char *s, size_t len)
snprintf(s, len,
"Charger du contenu depuis l'historique. \n"
" \n"
- "Lorsque le contenu est chargé,les combinaisons de contenu \n"
+ "Lorsque le contenu est chargé, les combinaisons de contenu \n"
"et de cœur libretro sont enregistrées dans l'historique. \n"
" \n"
"L'historique est enregistré dans un fichier dans le même \n"
@@ -955,7 +970,7 @@ int menu_hash_get_help_fr_enum(enum msg_hash_enums msg, char *s, size_t len)
break;
case MENU_ENUM_LABEL_VIDEO_SHADER_SCALE_PASS:
snprintf(s, len,
- "Echelle pour ce passage. \n"
+ "Échelle pour ce passage. \n"
" \n"
"Le facteur d’échelle s’accumule, c’est-à-dire \n"
"2x pour le premier passage et 2x pour le second \n"
@@ -1203,7 +1218,7 @@ int menu_hash_get_help_fr_enum(enum msg_hash_enums msg, char *s, size_t len)
" \n"
"Si cette touche de raccourci est liée à un clavier, \n"
"à une touche ou à un axe de manette, toutes les autres \n"
- "touches de raccourci sont désactivées, à moins que \n"
+ "touches de raccourci seront désactivées, à moins que \n"
"ce raccourci ne soit également maintenu enfoncé. \n"
" \n"
"Cette option est utile pour les implémentations \n"
@@ -1391,9 +1406,9 @@ int menu_hash_get_help_fr_enum(enum msg_hash_enums msg, char *s, size_t len)
break;
case MENU_ENUM_LABEL_SYSTEM_DIRECTORY:
snprintf(s, len,
- "Dossier système. \n"
+ "Dossier 'Système'. \n"
" \n"
- "Définit le dossier 'système'.\n"
+ "Définit le dossier 'Système'.\n"
"Les cœurs peuvent rechercher dans\n"
"ce dossier les BIOS, configurations \n"
"spécifiques au système, etc.");
@@ -1412,13 +1427,13 @@ int menu_hash_get_help_fr_enum(enum msg_hash_enums msg, char *s, size_t len)
snprintf(s, len,
"Utilise le pilote vidéo sur plusieurs fils d'exécution.\n"
" \n"
- "Cette option peut améliorer la performance au détriment \n"
- "d'une latence et de saccades visuelles possiblement \n"
- "accrues.");
+ "Cette option peut améliorer la performance \n"
+ "au détriment possible d'une latence \n"
+ "et de saccades visuelles accrues.");
break;
case MENU_ENUM_LABEL_VIDEO_VSYNC:
snprintf(s, len,
- "Synchronisation vertivale vidéo (V-Sync).\n");
+ "Synchronisation verticale vidéo (V-Sync).\n");
break;
case MENU_ENUM_LABEL_VIDEO_HARD_SYNC:
snprintf(s, len,
@@ -1463,10 +1478,18 @@ int menu_hash_get_help_fr_enum(enum msg_hash_enums msg, char *s, size_t len)
"avant l'exécution du cœur.\n"
"\n"
"Peut réduire la latence au prix\n"
- "d'un risque accru de saccades.\n"
+ "d'un plus grand risque de saccades.\n"
" \n"
"La valeur maximum est 15.");
break;
+ case MENU_ENUM_LABEL_VIDEO_SHADER_DELAY:
+ snprintf(s, len,
+ "Définit le délai en millisecondes après lequel\n"
+ "les shaders sont chargés.\n"
+ "\n"
+ "Peut résoudre des problèmes graphiques\n"
+ "lors de l'utilisation de logiciels de 'capture d'écran'.");
+ break;
case MENU_ENUM_LABEL_VIDEO_HARD_SYNC_FRAMES:
snprintf(s, len,
"Nombre d'images que le processeur peut éxécuter en avance \n"
@@ -1794,7 +1817,7 @@ int menu_hash_get_help_fr_enum(enum msg_hash_enums msg, char *s, size_t len)
break;
case MENU_ENUM_LABEL_NETPLAY_DISCONNECT:
snprintf(s, len,
- "Déconnect une connexion de jeu en réseau active.");
+ "Déconnecte une connexion de jeu en réseau active.");
break;
case MENU_ENUM_LABEL_NETPLAY_LAN_SCAN_SETTINGS:
snprintf(s, len,
@@ -1827,11 +1850,20 @@ int menu_hash_get_help_fr_enum(enum msg_hash_enums msg, char *s, size_t len)
break;
case MENU_ENUM_LABEL_OVERLAY_DIRECTORY:
snprintf(s, len,
- "Dossier des surimpressions. \n"
+ "Dossier des Surimpressions. \n"
" \n"
"Définit un dossier dans lequel les surimpressions \n"
"seront conservées pour un accès facile.");
break;
+#ifdef HAVE_VIDEO_LAYOUT
+ case MENU_ENUM_LABEL_VIDEO_LAYOUT_DIRECTORY:
+ snprintf(s, len,
+ "Dossier des Dispositions d'affichage. \n"
+ " \n"
+ "Définit un dossier dans lequel les dispositions d'affichage \n"
+ "seront conservées pour un accès facile.");
+ break;
+#endif
case MENU_ENUM_LABEL_INPUT_MAX_USERS:
snprintf(s, len,
"Nombre maximum d'utilisateurs pris en charge par \n"
@@ -1856,11 +1888,11 @@ int menu_hash_get_help_fr_enum(enum msg_hash_enums msg, char *s, size_t len)
case MENU_ENUM_LABEL_NETPLAY_TCP_UDP_PORT:
snprintf(s, len,
"Port de l'adresse IP de l'hôte. \n"
- "Can be either a TCP or UDP port.");
+ "Peut être soit un port TCP soit UDP.");
break;
case MENU_ENUM_LABEL_NETPLAY_SPECTATOR_MODE_ENABLE:
snprintf(s, len,
- "Active ou désactive le modespectateur pour \n"
+ "Active ou désactive le mode spectateur pour \n"
"l'utilisateur durant le jeu en réseau.");
break;
case MENU_ENUM_LABEL_NETPLAY_IP_ADDRESS:
diff --git a/intl/msg_hash_fr.h b/intl/msg_hash_fr.h
index f4659bed0a..41decd700a 100644
--- a/intl/msg_hash_fr.h
+++ b/intl/msg_hash_fr.h
@@ -8,9058 +8,9916 @@
#ifdef HAVE_LAKKA_SWITCH
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SWITCH_GPU_PROFILE,
- "Overclocker le processeur graphique"
- )
+ MENU_ENUM_LABEL_VALUE_SWITCH_GPU_PROFILE,
+ "Overclocker le processeur graphique"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SWITCH_GPU_PROFILE,
- "Overclocker ou underclocker le processeur graphique de la Switch"
- )
+ MENU_ENUM_SUBLABEL_SWITCH_GPU_PROFILE,
+ "Overclocker ou underclocker le processeur graphique de la Switch"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SWITCH_BACKLIGHT_CONTROL,
- "Luminosité de l'écran"
- )
+ MENU_ENUM_LABEL_VALUE_SWITCH_BACKLIGHT_CONTROL,
+ "Luminosité de l'écran"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SWITCH_BACKLIGHT_CONTROL,
- "Augmenter ou réduire la luminosité de l'écran de la Switch"
- )
+ MENU_ENUM_SUBLABEL_SWITCH_BACKLIGHT_CONTROL,
+ "Augmenter ou réduire la luminosité de l'écran de la Switch"
+ )
#endif
#if defined(HAVE_LAKKA_SWITCH) || defined(HAVE_LIBNX)
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SWITCH_CPU_PROFILE,
- "Overclocker le processeur"
- )
+ MENU_ENUM_LABEL_VALUE_SWITCH_CPU_PROFILE,
+ "Overclocker le processeur"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SWITCH_CPU_PROFILE,
- "Overclocker le processeur de la Switch"
- )
+ MENU_ENUM_SUBLABEL_SWITCH_CPU_PROFILE,
+ "Overclocker le processeur de la Switch"
+ )
#endif
MSG_HASH(
- MSG_COMPILER,
- "Compilateur "
- )
+ MSG_COMPILER,
+ "Compilateur "
+ )
MSG_HASH(
- MSG_UNKNOWN_COMPILER,
- "Compilateur inconnu"
- )
+ MSG_UNKNOWN_COMPILER,
+ "Compilateur inconnu"
+ )
MSG_HASH(
- MSG_NATIVE,
- "Native"
- )
+ MSG_NATIVE,
+ "Native"
+ )
MSG_HASH(
- MSG_DEVICE_DISCONNECTED_FROM_PORT,
- "Périphérique déconnecté du port"
- )
+ MSG_DEVICE_DISCONNECTED_FROM_PORT,
+ "Périphérique déconnecté du port"
+ )
MSG_HASH(
- MSG_UNKNOWN_NETPLAY_COMMAND_RECEIVED,
- "Commande de jeu en réseau inconnue reçue"
- )
+ MSG_UNKNOWN_NETPLAY_COMMAND_RECEIVED,
+ "Commande de jeu en réseau inconnue reçue"
+ )
MSG_HASH(
- MSG_FILE_ALREADY_EXISTS_SAVING_TO_BACKUP_BUFFER,
- "Fichier déjà existant. Enregistrement dans la mémoire tampon de sauvegarde"
- )
+ MSG_FILE_ALREADY_EXISTS_SAVING_TO_BACKUP_BUFFER,
+ "Fichier déjà existant. Enregistrement dans la mémoire tampon de sauvegarde"
+ )
MSG_HASH(
- MSG_GOT_CONNECTION_FROM,
- "Connexion reçue depuis : \"%s\""
- )
+ MSG_GOT_CONNECTION_FROM,
+ "Connexion reçue depuis : \"%s\""
+ )
MSG_HASH(
- MSG_GOT_CONNECTION_FROM_NAME,
- "Connexion reçue depuis : \"%s (%s)\""
- )
+ MSG_GOT_CONNECTION_FROM_NAME,
+ "Connexion reçue depuis : \"%s (%s)\""
+ )
MSG_HASH(
- MSG_PUBLIC_ADDRESS,
- "Mappage de port réussi"
- )
+ MSG_PUBLIC_ADDRESS,
+ "Mappage de port réussi"
+ )
MSG_HASH(
- MSG_UPNP_FAILED,
- "Mappage de port échoué"
- )
+ MSG_UPNP_FAILED,
+ "Mappage de port échoué"
+ )
MSG_HASH(
- MSG_NO_ARGUMENTS_SUPPLIED_AND_NO_MENU_BUILTIN,
- "Aucun paramètre fourni et pas de menu intégré, affichage de l'aide..."
- )
+ MSG_NO_ARGUMENTS_SUPPLIED_AND_NO_MENU_BUILTIN,
+ "Aucun paramètre fourni et pas de menu intégré, affichage de l'aide..."
+ )
MSG_HASH(
- MSG_SETTING_DISK_IN_TRAY,
- "Insertion de disque dans le lecteur"
- )
+ MSG_SETTING_DISK_IN_TRAY,
+ "Insertion de disque dans le lecteur"
+ )
MSG_HASH(
- MSG_WAITING_FOR_CLIENT,
- "En attente d'un client ..."
- )
+ MSG_WAITING_FOR_CLIENT,
+ "En attente d'un client ..."
+ )
MSG_HASH(
- MSG_NETPLAY_YOU_HAVE_LEFT_THE_GAME,
- "Vous avez quitté le jeu"
- )
+ MSG_NETPLAY_YOU_HAVE_LEFT_THE_GAME,
+ "Vous avez quitté le jeu"
+ )
MSG_HASH(
- MSG_NETPLAY_YOU_HAVE_JOINED_AS_PLAYER_N,
- "Vous avez rejoint le jeu en tant que joueur %u"
- )
+ MSG_NETPLAY_YOU_HAVE_JOINED_AS_PLAYER_N,
+ "Vous avez rejoint le jeu en tant que joueur %u"
+ )
MSG_HASH(
- MSG_NETPLAY_YOU_HAVE_JOINED_WITH_INPUT_DEVICES_S,
- "Vous avez rejoint le jeu avec des dispositifs d'entrée %.*s"
- )
+ MSG_NETPLAY_YOU_HAVE_JOINED_WITH_INPUT_DEVICES_S,
+ "Vous avez rejoint le jeu avec des dispositifs d'entrée %.*s"
+ )
MSG_HASH(
- MSG_NETPLAY_PLAYER_S_LEFT,
- "Joueur %.*s à quitté le jeu"
- )
+ MSG_NETPLAY_PLAYER_S_LEFT,
+ "Joueur %.*s à quitté le jeu"
+ )
MSG_HASH(
- MSG_NETPLAY_S_HAS_JOINED_AS_PLAYER_N,
- "%.*s à rejoint le jeu en tant que joueur %u"
- )
+ MSG_NETPLAY_S_HAS_JOINED_AS_PLAYER_N,
+ "%.*s à rejoint le jeu en tant que joueur %u"
+ )
MSG_HASH(
- MSG_NETPLAY_S_HAS_JOINED_WITH_INPUT_DEVICES_S,
- "%.*s à rejoint le jeu avec des dispositifs d'entrée %.*s"
- )
+ MSG_NETPLAY_S_HAS_JOINED_WITH_INPUT_DEVICES_S,
+ "%.*s à rejoint le jeu avec des dispositifs d'entrée %.*s"
+ )
MSG_HASH(
- MSG_NETPLAY_NOT_RETROARCH,
- "Une tentative de connexion de jeu en réseau à échouée car RetroArch n'est pas en cours d'exécution chez le partenaire, ou est sur une version ancienne de RetroArch."
- )
+ MSG_NETPLAY_NOT_RETROARCH,
+ "Une tentative de connexion de jeu en réseau à échouée car RetroArch n'est pas en cours d'exécution chez le partenaire, ou est sur une version ancienne de RetroArch."
+ )
MSG_HASH(
- MSG_NETPLAY_OUT_OF_DATE,
- "Le partenaire de jeu en réseau est sur une version ancienne de RetroArch. Connexion impossible."
- )
+ MSG_NETPLAY_OUT_OF_DATE,
+ "Le partenaire de jeu en réseau est sur une version ancienne de RetroArch. Connexion impossible."
+ )
MSG_HASH(
- MSG_NETPLAY_DIFFERENT_VERSIONS,
- "ATTENTION : Un partenaire de jeu en réseau est sur une version différente de RetroArch. Si des problèmes surviennent, utilisez la même version."
- )
+ MSG_NETPLAY_DIFFERENT_VERSIONS,
+ "ATTENTION : Un partenaire de jeu en réseau est sur une version différente de RetroArch. Si des problèmes surviennent, utilisez la même version."
+ )
MSG_HASH(
- MSG_NETPLAY_DIFFERENT_CORES,
- "Un partenaire de jeu en réseau est sur un cœur different. Connexion impossible."
- )
+ MSG_NETPLAY_DIFFERENT_CORES,
+ "Un partenaire de jeu en réseau est sur un cœur different. Connexion impossible."
+ )
MSG_HASH(
- MSG_NETPLAY_DIFFERENT_CORE_VERSIONS,
- "ATTENTION : Un partenaire de jeu en réseau est sur une version différente du cœur. Si des problèmes surviennent, utilisez la même version."
- )
+ MSG_NETPLAY_DIFFERENT_CORE_VERSIONS,
+ "ATTENTION : Un partenaire de jeu en réseau est sur une version différente du cœur. Si des problèmes surviennent, utilisez la même version."
+ )
MSG_HASH(
- MSG_NETPLAY_ENDIAN_DEPENDENT,
- "Ce cœur ne prend pas en charge le jeu en réseau inter-architectures entre ces systèmes"
- )
+ MSG_NETPLAY_ENDIAN_DEPENDENT,
+ "Ce cœur ne prend pas en charge le jeu en réseau inter-architectures entre ces systèmes"
+ )
MSG_HASH(
- MSG_NETPLAY_PLATFORM_DEPENDENT,
- "Ce cœur ne prend pas en charge le jeu en réseau inter-architectures"
- )
+ MSG_NETPLAY_PLATFORM_DEPENDENT,
+ "Ce cœur ne prend pas en charge le jeu en réseau inter-architectures"
+ )
MSG_HASH(
- MSG_NETPLAY_ENTER_PASSWORD,
- "Entrez le mot de passe du serveur de jeu en réseau :"
- )
+ MSG_NETPLAY_ENTER_PASSWORD,
+ "Entrez le mot de passe du serveur de jeu en réseau :"
+ )
MSG_HASH(
- MSG_DISCORD_CONNECTION_REQUEST,
- "Voulez-vous autoriser la connexion de l'utilisateur :"
- )
+ MSG_DISCORD_CONNECTION_REQUEST,
+ "Voulez-vous autoriser la connexion de l'utilisateur :"
+ )
MSG_HASH(
- MSG_NETPLAY_INCORRECT_PASSWORD,
- "Mot de passe incorrect"
- )
+ MSG_NETPLAY_INCORRECT_PASSWORD,
+ "Mot de passe incorrect"
+ )
MSG_HASH(
- MSG_NETPLAY_SERVER_NAMED_HANGUP,
- "\"%s\" s'est déconnecté"
- )
+ MSG_NETPLAY_SERVER_NAMED_HANGUP,
+ "\"%s\" s'est déconnecté"
+ )
MSG_HASH(
- MSG_NETPLAY_SERVER_HANGUP,
- "Un client de jeu en réseau s'est déconnecté"
- )
+ MSG_NETPLAY_SERVER_HANGUP,
+ "Un client de jeu en réseau s'est déconnecté"
+ )
MSG_HASH(
- MSG_NETPLAY_CLIENT_HANGUP,
- "Jeu en réseau déconnecté"
- )
+ MSG_NETPLAY_CLIENT_HANGUP,
+ "Jeu en réseau déconnecté"
+ )
MSG_HASH(
- MSG_NETPLAY_CANNOT_PLAY_UNPRIVILEGED,
- "Vous n'avez pas la permission de jouer"
- )
+ MSG_NETPLAY_CANNOT_PLAY_UNPRIVILEGED,
+ "Vous n'avez pas la permission de jouer"
+ )
MSG_HASH(
- MSG_NETPLAY_CANNOT_PLAY_NO_SLOTS,
- "Aucune place de libre pour jouer"
- )
+ MSG_NETPLAY_CANNOT_PLAY_NO_SLOTS,
+ "Aucune place de libre pour jouer"
+ )
MSG_HASH(
- MSG_NETPLAY_CANNOT_PLAY_NOT_AVAILABLE,
- "Les dispositifs d'entrée demandés ne sont pas disponibles"
- )
+ MSG_NETPLAY_CANNOT_PLAY_NOT_AVAILABLE,
+ "Les dispositifs d'entrée demandés ne sont pas disponibles"
+ )
MSG_HASH(
- MSG_NETPLAY_CANNOT_PLAY,
- "Impossible de basculer en mode jeu"
- )
+ MSG_NETPLAY_CANNOT_PLAY,
+ "Impossible de basculer en mode jeu"
+ )
MSG_HASH(
- MSG_NETPLAY_PEER_PAUSED,
- "Le partenaire de jeu en réseau \"%s\" à mis en pause"
- )
+ MSG_NETPLAY_PEER_PAUSED,
+ "Le partenaire de jeu en réseau \"%s\" à mis en pause"
+ )
MSG_HASH(
- MSG_NETPLAY_CHANGED_NICK,
- "Votre pseudo est maintenant \"%s\""
- )
+ MSG_NETPLAY_CHANGED_NICK,
+ "Votre pseudo est maintenant \"%s\""
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SHARED_CONTEXT,
- "Donner aux cœurs bénéficiant de l'accélération graphique leur propre contexte privé. Évite d'avoir à supposer des changements d'état matériel entre deux images."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_SHARED_CONTEXT,
+ "Donne aux cœurs bénéficiant de l'accélération graphique leur propre contexte privé. Évite d'avoir à supposer des changements d'état matériel entre deux images."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_HORIZONTAL_ANIMATION,
- "Activer l'animation horizontale pour le menu. Cela aura un impact sur les performances."
- )
+ MENU_ENUM_SUBLABEL_MENU_HORIZONTAL_ANIMATION,
+ "Active l'animation horizontale pour le menu. Cela aura un impact sur les performances."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_SETTINGS,
- "Ajuste les réglages de l'apparence de l'écran de menu."
- )
+ MENU_ENUM_SUBLABEL_MENU_SETTINGS,
+ "Ajuste les réglages de l'apparence de l'écran de menu."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_HARD_SYNC,
- "Synchronisation matérielle du processeur et du processeur graphique. Réduit la latence mais affecte les performances."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_HARD_SYNC,
+ "Synchronisation matérielle du processeur et du processeur graphique. Réduit la latence mais affecte les performances."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_THREADED,
- "Améliore la performance au détriment d'une latence et de saccades visuelles accrues. À n'utiliser que si vous avez des ralentissements en jeu sans cette option."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_THREADED,
+ "Améliore la performance au détriment d'une latence et de saccades visuelles accrues. À n'utiliser que si vous avez des ralentissements en jeu sans cette option."
+ )
MSG_HASH(
- MSG_AUDIO_VOLUME,
- "Volume sonore"
- )
+ MSG_AUDIO_VOLUME,
+ "Volume sonore"
+ )
MSG_HASH(
- MSG_AUTODETECT,
- "Détection automatique"
- )
+ MSG_AUTODETECT,
+ "Détection automatique"
+ )
MSG_HASH(
- MSG_AUTOLOADING_SAVESTATE_FROM,
- "Chargement auto d'une sauvegarde instantanée depuis"
- )
+ MSG_AUTOLOADING_SAVESTATE_FROM,
+ "Chargement auto d'une sauvegarde instantanée depuis"
+ )
MSG_HASH(
- MSG_CAPABILITIES,
- "Capacités"
- )
+ MSG_CAPABILITIES,
+ "Capacités"
+ )
MSG_HASH(
- MSG_CONNECTING_TO_NETPLAY_HOST,
- "Connexion à l'hôte de jeu en réseau"
- )
+ MSG_CONNECTING_TO_NETPLAY_HOST,
+ "Connexion à l'hôte de jeu en réseau"
+ )
MSG_HASH(
- MSG_CONNECTING_TO_PORT,
- "Connexion au port"
- )
+ MSG_CONNECTING_TO_PORT,
+ "Connexion au port"
+ )
MSG_HASH(
- MSG_CONNECTION_SLOT,
- "Emplacement de connexion"
- )
+ MSG_CONNECTION_SLOT,
+ "Emplacement de connexion"
+ )
MSG_HASH(
- MSG_SORRY_UNIMPLEMENTED_CORES_DONT_DEMAND_CONTENT_NETPLAY,
- "Désolé, non implémenté : les cœurs qui ne demandent pas de contenu ne peuvent pas participer au jeu en réseau."
- )
+ MSG_SORRY_UNIMPLEMENTED_CORES_DONT_DEMAND_CONTENT_NETPLAY,
+ "Désolé, non implémenté : les cœurs qui ne demandent pas de contenu ne peuvent pas participer au jeu en réseau."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ACCOUNTS_CHEEVOS_PASSWORD,
- "Mot de passe "
- )
+ MENU_ENUM_LABEL_VALUE_ACCOUNTS_CHEEVOS_PASSWORD,
+ "Mot de passe "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ACCOUNTS_CHEEVOS_SETTINGS,
- "Comptes Cheevos"
- )
+ MENU_ENUM_LABEL_VALUE_ACCOUNTS_CHEEVOS_SETTINGS,
+ "Comptes Cheevos"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ACCOUNTS_CHEEVOS_USERNAME,
- "Identifiant "
- )
+ MENU_ENUM_LABEL_VALUE_ACCOUNTS_CHEEVOS_USERNAME,
+ "Identifiant "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ACCOUNTS_LIST,
- "Comptes"
- )
+ MENU_ENUM_LABEL_VALUE_ACCOUNTS_LIST,
+ "Comptes"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ACCOUNTS_LIST_END,
- "Point de terminaison de la liste des comptes"
- )
+ MENU_ENUM_LABEL_VALUE_ACCOUNTS_LIST_END,
+ "Point de terminaison de la liste des comptes"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ACCOUNTS_RETRO_ACHIEVEMENTS,
- "RetroSuccès"
- )
+ MENU_ENUM_LABEL_VALUE_ACCOUNTS_RETRO_ACHIEVEMENTS,
+ "RetroSuccès"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ACHIEVEMENT_LIST,
- "Succès"
- )
+ MENU_ENUM_LABEL_VALUE_ACHIEVEMENT_LIST,
+ "Succès"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ACHIEVEMENT_PAUSE,
- "Mettre en pause le mode Hardcore des succès"
- )
+ MENU_ENUM_LABEL_VALUE_ACHIEVEMENT_PAUSE,
+ "Mettre en pause le mode Hardcore des succès"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ACHIEVEMENT_RESUME,
- "Reprendre le mode Hardcore des succès"
- )
+ MENU_ENUM_LABEL_VALUE_ACHIEVEMENT_RESUME,
+ "Reprendre le mode Hardcore des succès"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ACHIEVEMENT_LIST_HARDCORE,
- "Succès (Hardcore)"
- )
+ MENU_ENUM_LABEL_VALUE_ACHIEVEMENT_LIST_HARDCORE,
+ "Succès (Hardcore)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ADD_CONTENT_LIST,
- "Analyser du contenu"
- )
+ MENU_ENUM_LABEL_VALUE_ADD_CONTENT_LIST,
+ "Analyser du contenu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONFIGURATIONS_LIST,
- "Fichiers de configuration"
- )
+ MENU_ENUM_LABEL_VALUE_CONFIGURATIONS_LIST,
+ "Fichiers de configuration"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ADD_TAB,
- "Importer du contenu"
- )
+ MENU_ENUM_LABEL_VALUE_ADD_TAB,
+ "Importer du contenu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_TAB,
- "Salons de jeu en réseau"
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_TAB,
+ "Salons de jeu en réseau"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ASK_ARCHIVE,
- "Demander"
- )
+ MENU_ENUM_LABEL_VALUE_ASK_ARCHIVE,
+ "Demander"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ASSETS_DIRECTORY,
- "Assets "
- )
+ MENU_ENUM_LABEL_VALUE_ASSETS_DIRECTORY,
+ "Assets "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_BLOCK_FRAMES,
- "Taille des blocs"
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_BLOCK_FRAMES,
+ "Taille des blocs"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_DEVICE,
- "Périphérique "
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_DEVICE,
+ "Périphérique "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_DRIVER,
- "Audio "
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_DRIVER,
+ "Audio "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_DSP_PLUGIN,
- "Module DSP "
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_DSP_PLUGIN,
+ "Module DSP "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE,
- "Son"
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE,
+ "Son"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_FILTER_DIR,
- "Filtres audio "
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_FILTER_DIR,
+ "Filtres audio "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TURBO_DEADZONE_LIST,
- "Turbo/Deadzone"
- )
+ MENU_ENUM_LABEL_VALUE_TURBO_DEADZONE_LIST,
+ "Turbo/Deadzone"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_LATENCY,
- "Latence audio (ms) "
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_LATENCY,
+ "Latence audio (ms) "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_MAX_TIMING_SKEW,
- "Limite de synchronisation maximale "
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_MAX_TIMING_SKEW,
+ "Limite de synchronisation maximale "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_MUTE,
- "Muet"
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_MUTE,
+ "Muet"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_OUTPUT_RATE,
- "Fréquence de sortie (Hz) "
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_OUTPUT_RATE,
+ "Fréquence de sortie (Hz) "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_RATE_CONTROL_DELTA,
- "Contrôle dynamique du débit audio "
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_RATE_CONTROL_DELTA,
+ "Contrôle dynamique du débit audio "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_RESAMPLER_DRIVER,
- "Ré-échantillonneur audio "
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_RESAMPLER_DRIVER,
+ "Ré-échantillonneur audio "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_SETTINGS,
- "Audio "
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_SETTINGS,
+ "Audio "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_SYNC,
- "Synchronisation"
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_SYNC,
+ "Synchronisation"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_VOLUME,
- "Gain de volume (dB)"
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_VOLUME,
+ "Gain de volume (dB)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_WASAPI_EXCLUSIVE_MODE,
- "Mode exclusif WASAPI"
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_WASAPI_EXCLUSIVE_MODE,
+ "Mode exclusif WASAPI"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_WASAPI_FLOAT_FORMAT,
- "Format de virgule flottante WASAPI"
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_WASAPI_FLOAT_FORMAT,
+ "Format de virgule flottante WASAPI"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_WASAPI_SH_BUFFER_LENGTH,
- "Taille de la mémoire tampon partagée WASAPI"
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_WASAPI_SH_BUFFER_LENGTH,
+ "Taille de la mémoire tampon partagée WASAPI"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUTOSAVE_INTERVAL,
- "Intervalle de sauvegarde auto de la SRAM "
- )
+ MENU_ENUM_LABEL_VALUE_AUTOSAVE_INTERVAL,
+ "Intervalle de sauvegarde auto de la SRAM "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUTO_OVERRIDES_ENABLE,
- "Charger les remplacements de configuration"
- )
+ MENU_ENUM_LABEL_VALUE_AUTO_OVERRIDES_ENABLE,
+ "Charger les remplacements de configuration"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUTO_REMAPS_ENABLE,
- "Charger les fichiers de remappage"
- )
+ MENU_ENUM_LABEL_VALUE_AUTO_REMAPS_ENABLE,
+ "Charger les fichiers de remappage"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUTO_SHADERS_ENABLE,
- "Charger les préréglages de shader"
- )
+ MENU_ENUM_LABEL_VALUE_GLOBAL_CORE_OPTIONS,
+ "Utiliser un fichier de configuration des cœurs global"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_BACK,
- "Retour"
- )
+ MENU_ENUM_SUBLABEL_GLOBAL_CORE_OPTIONS,
+ "Sauvegarde tous les réglages de cœurs dans un fichier de configuration commun (retroarch-core-options.cfg). Si cette option est désactivée, les réglages de chaque cœur seront sauvegardés vers un dossier/fichier de configuration spécifique au cœur séparé dans le dossier 'Config' de RetroArch."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_CONFIRM,
- "Confirmer"
- )
+ MENU_ENUM_LABEL_VALUE_AUTO_SHADERS_ENABLE,
+ "Charger les préréglages de shaders"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_INFO,
- "Info"
- )
+ MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_BACK,
+ "Retour"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_QUIT,
- "Quitter"
- )
+ MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_CONFIRM,
+ "Confirmer"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_SCROLL_DOWN,
- "Faire défiler vers le bas"
- )
+ MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_INFO,
+ "Info"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_SCROLL_UP,
- "Faire défiler vers le haut"
- )
+ MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_QUIT,
+ "Quitter"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_START,
- "Démarrer"
- )
+ MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_SCROLL_DOWN,
+ "Faire défiler vers le bas"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_TOGGLE_KEYBOARD,
- "Afficher/masquer le clavier"
- )
+ MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_SCROLL_UP,
+ "Faire défiler vers le haut"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_TOGGLE_MENU,
- "Afficher/masquer le menu"
- )
+ MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_START,
+ "Démarrer"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BASIC_MENU_ENUM_CONTROLS,
- "Contrôles de base du menu"
- )
+ MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_TOGGLE_KEYBOARD,
+ "Afficher/masquer le clavier"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BASIC_MENU_ENUM_CONTROLS_CONFIRM,
- "Confirmer/Accepter"
- )
+ MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_TOGGLE_MENU,
+ "Afficher/masquer le menu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BASIC_MENU_ENUM_CONTROLS_INFO,
- "Informations"
- )
+ MENU_ENUM_LABEL_VALUE_BASIC_MENU_ENUM_CONTROLS,
+ "Contrôles de base du menu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BASIC_MENU_ENUM_CONTROLS_QUIT,
- "Quitter"
- )
+ MENU_ENUM_LABEL_VALUE_BASIC_MENU_ENUM_CONTROLS_CONFIRM,
+ "Confirmer/Accepter"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BASIC_MENU_ENUM_CONTROLS_SCROLL_UP,
- "Faire défiler vers le haut"
- )
+ MENU_ENUM_LABEL_VALUE_BASIC_MENU_ENUM_CONTROLS_INFO,
+ "Informations"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BASIC_MENU_ENUM_CONTROLS_START,
- "Par défaut"
- )
+ MENU_ENUM_LABEL_VALUE_BASIC_MENU_ENUM_CONTROLS_QUIT,
+ "Quitter"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BASIC_MENU_ENUM_CONTROLS_TOGGLE_KEYBOARD,
- "Afficher/masquer le clavier"
- )
+ MENU_ENUM_LABEL_VALUE_BASIC_MENU_ENUM_CONTROLS_SCROLL_UP,
+ "Faire défiler vers le haut"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BASIC_MENU_ENUM_CONTROLS_TOGGLE_MENU,
- "Afficher/masquer le menu"
- )
+ MENU_ENUM_LABEL_VALUE_BASIC_MENU_ENUM_CONTROLS_START,
+ "Par défaut"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BLOCK_SRAM_OVERWRITE,
- "Ne pas écraser la SRAM en chargeant la sauvegarde instantanée"
- )
+ MENU_ENUM_LABEL_VALUE_BASIC_MENU_ENUM_CONTROLS_TOGGLE_KEYBOARD,
+ "Afficher/masquer le clavier"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_BASIC_MENU_ENUM_CONTROLS_TOGGLE_MENU,
+ "Afficher/masquer le menu"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_BLOCK_SRAM_OVERWRITE,
+ "Ne pas écraser la SRAM en chargeant la sauvegarde instantanée"
+ )
#ifdef HAVE_LAKKA
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BLUETOOTH_ENABLE,
- "Bluetooth"
- )
+ MENU_ENUM_LABEL_VALUE_BLUETOOTH_ENABLE,
+ "Bluetooth"
+ )
#endif
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BUILDBOT_ASSETS_URL,
- "Adresse URL des assets sur le Buildbot "
- )
+ MENU_ENUM_LABEL_VALUE_BUILDBOT_ASSETS_URL,
+ "Adresse URL des assets sur le Buildbot "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CACHE_DIRECTORY,
- "Cache "
- )
+ MENU_ENUM_LABEL_VALUE_CACHE_DIRECTORY,
+ "Cache "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CAMERA_ALLOW,
- "Autoriser la caméra"
- )
+ MENU_ENUM_LABEL_VALUE_CAMERA_ALLOW,
+ "Autoriser la caméra"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CAMERA_DRIVER,
- "Caméra "
- )
+ MENU_ENUM_LABEL_VALUE_CAMERA_DRIVER,
+ "Caméra "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT,
- "Cheat"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT,
+ "Cheat"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_APPLY_CHANGES,
- "Appliquer les changements"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_APPLY_CHANGES,
+ "Appliquer les changements"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_START_SEARCH,
- "Lancer la recherche d'un nouveau cheat code"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_START_SEARCH,
+ "Lancer la recherche d'un nouveau cheat code"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_CONTINUE_SEARCH,
- "Continuer la recherche"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_CONTINUE_SEARCH,
+ "Continuer la recherche"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_DATABASE_PATH,
- "Fichiers de cheats "
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_DATABASE_PATH,
+ "Fichiers de cheats "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_FILE,
- "Fichier de cheats"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_FILE,
+ "Fichier de cheats"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_FILE_LOAD,
- "Charger des cheats (Remplacer)"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_FILE_LOAD,
+ "Charger des cheats (Remplacer)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_FILE_LOAD_APPEND,
- "Charger des cheats (Ajouter)"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_FILE_LOAD_APPEND,
+ "Charger des cheats (Ajouter)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_FILE_SAVE_AS,
- "Enregistrer les cheats sous"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_FILE_SAVE_AS,
+ "Enregistrer les cheats sous"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_NUM_PASSES,
- "Nombre de passages de cheats"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_NUM_PASSES,
+ "Nombre de passages de cheats"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEEVOS_DESCRIPTION,
- "Description"
- )
+ MENU_ENUM_LABEL_VALUE_CHEEVOS_DESCRIPTION,
+ "Description"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEEVOS_HARDCORE_MODE_ENABLE,
- "Mode Hardcore"
- )
+ MENU_ENUM_LABEL_VALUE_CHEEVOS_HARDCORE_MODE_ENABLE,
+ "Mode Hardcore"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEEVOS_LEADERBOARDS_ENABLE,
- "Classements"
- )
+ MENU_ENUM_LABEL_VALUE_CHEEVOS_LEADERBOARDS_ENABLE,
+ "Classements"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEEVOS_BADGES_ENABLE,
- "Badges de succès"
- )
+ MENU_ENUM_LABEL_VALUE_CHEEVOS_BADGES_ENABLE,
+ "Badges de succès"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEEVOS_LOCKED_ACHIEVEMENTS,
- "Succès verrouillés :"
- )
+ MENU_ENUM_LABEL_VALUE_CHEEVOS_LOCKED_ACHIEVEMENTS,
+ "Succès verrouillés :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEEVOS_LOCKED_ENTRY,
- "Verrouillé"
- )
+ MENU_ENUM_LABEL_VALUE_CHEEVOS_LOCKED_ENTRY,
+ "Verrouillé"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEEVOS_SETTINGS,
- "RetroSuccès"
- )
+ MENU_ENUM_LABEL_VALUE_CHEEVOS_SETTINGS,
+ "RetroSuccès"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEEVOS_TEST_UNOFFICIAL,
- "Tester les succès non officiels"
- )
+ MENU_ENUM_LABEL_VALUE_CHEEVOS_TEST_UNOFFICIAL,
+ "Tester les succès non-officiels"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEEVOS_UNLOCKED_ACHIEVEMENTS,
- "Succès débloqués :"
- )
+ MENU_ENUM_LABEL_VALUE_CHEEVOS_UNLOCKED_ACHIEVEMENTS,
+ "Succès débloqués :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEEVOS_UNLOCKED_ENTRY,
- "Débloqué"
- )
+ MENU_ENUM_LABEL_VALUE_CHEEVOS_UNLOCKED_ENTRY,
+ "Débloqué"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEEVOS_UNLOCKED_ENTRY_HARDCORE,
- "Hardcore"
- )
+ MENU_ENUM_LABEL_VALUE_CHEEVOS_UNLOCKED_ENTRY_HARDCORE,
+ "Hardcore"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEEVOS_VERBOSE_ENABLE,
- "Mode verbeux"
- )
+ MENU_ENUM_LABEL_VALUE_CHEEVOS_VERBOSE_ENABLE,
+ "Mode verbeux"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEEVOS_AUTO_SCREENSHOT,
- "Capture d'écran automatique"
- )
+ MENU_ENUM_LABEL_VALUE_CHEEVOS_AUTO_SCREENSHOT,
+ "Capture d'écran automatique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEEVOS_OLD_ENABLE,
- "Utiliser l'ancienne implémentation (Debugage uniquement)"
- )
+ MENU_ENUM_LABEL_VALUE_CHEEVOS_OLD_ENABLE,
+ "Utiliser l'ancienne implémentation (Debugage uniquement)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CLOSE_CONTENT,
- "Fermer le contenu"
- )
+ MENU_ENUM_LABEL_VALUE_CLOSE_CONTENT,
+ "Fermer le contenu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONFIG,
- "Config"
- )
+ MENU_ENUM_LABEL_VALUE_CONFIG,
+ "Configuration"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONFIGURATIONS,
- "Charger une configuration"
- )
+ MENU_ENUM_LABEL_VALUE_CONFIGURATIONS,
+ "Charger une configuration"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONFIGURATION_SETTINGS,
- "Configuration"
- )
+ MENU_ENUM_LABEL_VALUE_CONFIGURATION_SETTINGS,
+ "Configuration"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONFIG_SAVE_ON_EXIT,
- "Sauvegarder la configuration en quittant"
- )
+ MENU_ENUM_LABEL_VALUE_CONFIG_SAVE_ON_EXIT,
+ "Sauvegarder la configuration en quittant"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONTENT_DATABASE_DIRECTORY,
- "Bases de données "
- )
+ MENU_ENUM_LABEL_VALUE_CONTENT_DATABASE_DIRECTORY,
+ "Bases de données "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONTENT_DIR,
- "Contenu"
- )
+ MENU_ENUM_LABEL_VALUE_CONTENT_DIR,
+ "Contenu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONTENT_HISTORY_SIZE,
- "Taille de la liste de l'historique "
- )
+ MENU_ENUM_LABEL_VALUE_CONTENT_HISTORY_SIZE,
+ "Taille de la liste de l'historique "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PLAYLIST_ENTRY_REMOVE,
- "Autoriser la suppression d'entrées"
- )
+ MENU_ENUM_LABEL_VALUE_CONTENT_FAVORITES_SIZE,
+ "Taille de la liste des favoris"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONTENT_SETTINGS,
- "Menu rapide"
- )
+ MENU_ENUM_SUBLABEL_CONTENT_FAVORITES_SIZE,
+ "Limite le nombre d'entrées dans la liste des favoris. Une fois la limite atteinte, les nouveaux ajouts seront empêchés à moins que d'anciens éléments ne soient supprimés. Définir une valeur de -1 permet un nombre d'entrées 'illimitées' (99999). ATTENTION : Diminuer la valeur effacera des entrées existantes !"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_ASSETS_DIR,
- "Téléchargements"
- )
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_ENTRY_REMOVE,
+ "Autoriser la suppression d'entrées"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_ASSETS_DIRECTORY,
- "Téléchargements "
- )
+ MENU_ENUM_LABEL_VALUE_CONTENT_SETTINGS,
+ "Menu rapide"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_CHEAT_OPTIONS,
- "Cheats"
- )
+ MENU_ENUM_LABEL_VALUE_CORE_ASSETS_DIR,
+ "Téléchargements"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_COUNTERS,
- "Compteurs de cœur"
- )
+ MENU_ENUM_LABEL_VALUE_CORE_ASSETS_DIRECTORY,
+ "Téléchargements "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_ENABLE,
- "Afficher le nom du cœur"
- )
+ MENU_ENUM_LABEL_VALUE_CORE_CHEAT_OPTIONS,
+ "Cheats"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_INFORMATION,
- "Informations sur le cœur"
- )
+ MENU_ENUM_LABEL_VALUE_CORE_COUNTERS,
+ "Compteurs de cœur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_INFO_AUTHORS,
- "Auteurs "
- )
+ MENU_ENUM_LABEL_VALUE_CORE_ENABLE,
+ "Afficher le nom du cœur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_INFO_CATEGORIES,
- "Catégorie "
- )
+ MENU_ENUM_LABEL_VALUE_CORE_INFORMATION,
+ "Informations sur le cœur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_INFO_CORE_LABEL,
- "Appellation du cœur "
- )
+ MENU_ENUM_LABEL_VALUE_CORE_INFO_AUTHORS,
+ "Auteurs "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_INFO_CORE_NAME,
- "Nom du cœur "
- )
+ MENU_ENUM_LABEL_VALUE_CORE_INFO_CATEGORIES,
+ "Catégorie "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_INFO_FIRMWARE,
- "Firmware(s) "
- )
+ MENU_ENUM_LABEL_VALUE_CORE_INFO_CORE_LABEL,
+ "Appellation du cœur "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_INFO_LICENSES,
- "Licence "
- )
+ MENU_ENUM_LABEL_VALUE_CORE_INFO_CORE_NAME,
+ "Nom du cœur "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_INFO_PERMISSIONS,
- "Permissions "
- )
+ MENU_ENUM_LABEL_VALUE_CORE_INFO_FIRMWARE,
+ "Firmware(s) "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_INFO_SUPPORTED_EXTENSIONS,
- "Extensions prises en charge "
- )
+ MENU_ENUM_LABEL_VALUE_CORE_INFO_LICENSES,
+ "Licence "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_INFO_SYSTEM_MANUFACTURER,
- "Fabricant du système "
- )
+ MENU_ENUM_LABEL_VALUE_CORE_INFO_PERMISSIONS,
+ "Permissions "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_INFO_SYSTEM_NAME,
- "Nom du système "
- )
+ MENU_ENUM_LABEL_VALUE_CORE_INFO_SUPPORTED_EXTENSIONS,
+ "Extensions prises en charge "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_INPUT_REMAPPING_OPTIONS,
- "Touches"
- )
+ MENU_ENUM_LABEL_VALUE_CORE_INFO_SYSTEM_MANUFACTURER,
+ "Fabricant du système "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_LIST,
- "Charger un cœur"
- )
+ MENU_ENUM_LABEL_VALUE_CORE_INFO_SYSTEM_NAME,
+ "Nom du système "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SIDELOAD_CORE_LIST,
- "Installer ou restaurer un cœur"
- )
+ MENU_ENUM_LABEL_VALUE_CORE_INFO_REQUIRED_HW_API,
+ "API de graphismes requises "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SIDELOAD_CORE_ERROR,
- "Installation du cœur échouée"
- )
+ MENU_ENUM_LABEL_VALUE_CORE_INPUT_REMAPPING_OPTIONS,
+ "Touches"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SIDELOAD_CORE_SUCCESS,
- "Installation du cœur réussie"
- )
+ MENU_ENUM_LABEL_VALUE_CORE_LIST,
+ "Charger un cœur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_OPTIONS,
- "Options"
- )
+ MENU_ENUM_LABEL_VALUE_SIDELOAD_CORE_LIST,
+ "Installer ou restaurer un cœur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_SETTINGS,
- "Cœurs"
- )
+ MENU_ENUM_LABEL_VALUE_SIDELOAD_CORE_ERROR,
+ "Installation du cœur échouée"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_SET_SUPPORTS_NO_CONTENT_ENABLE,
- "Démarrer un cœur automatiquement"
- )
+ MENU_ENUM_LABEL_VALUE_SIDELOAD_CORE_SUCCESS,
+ "Installation du cœur réussie"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_UPDATER_AUTO_EXTRACT_ARCHIVE,
- "Extraire automatiquement les archives téléchargées"
- )
+ MENU_ENUM_LABEL_VALUE_CORE_OPTIONS,
+ "Options"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_UPDATER_BUILDBOT_URL,
- "Adresse URL des cœurs sur le Buildbot "
- )
+ MENU_ENUM_LABEL_VALUE_CORE_SETTINGS,
+ "Cœurs"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_UPDATER_LIST,
- "Mise à jour des cœurs"
- )
+ MENU_ENUM_LABEL_VALUE_CORE_SET_SUPPORTS_NO_CONTENT_ENABLE,
+ "Démarrer un cœur automatiquement"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_UPDATER_SETTINGS,
- "Mise à jour"
- )
+ MENU_ENUM_LABEL_VALUE_CORE_UPDATER_AUTO_EXTRACT_ARCHIVE,
+ "Extraire automatiquement les archives téléchargées"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CPU_ARCHITECTURE,
- "Architecture du processeur :"
- )
+ MENU_ENUM_LABEL_VALUE_CORE_UPDATER_BUILDBOT_URL,
+ "Adresse URL des cœurs sur le Buildbot "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CPU_CORES,
- "Cœurs du processeur :"
- )
+ MENU_ENUM_LABEL_VALUE_CORE_UPDATER_LIST,
+ "Mise à jour des cœurs"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CURSOR_DIRECTORY,
- "Pointeurs "
- )
+ MENU_ENUM_LABEL_VALUE_CORE_UPDATER_SETTINGS,
+ "Mise à jour"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CURSOR_MANAGER,
- "Gestionnaire de pointeurs"
- )
+ MENU_ENUM_LABEL_VALUE_CPU_ARCHITECTURE,
+ "Architecture du processeur :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CUSTOM_RATIO,
- "Rapport d'aspect personnalisé"
- )
+ MENU_ENUM_LABEL_VALUE_CPU_CORES,
+ "Cœurs du processeur :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DATABASE_MANAGER,
- "Gestionnaire de base de données"
- )
+ MENU_ENUM_LABEL_VALUE_CURSOR_DIRECTORY,
+ "Pointeurs "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION,
- "Sélection de base de données"
- )
+ MENU_ENUM_LABEL_VALUE_CURSOR_MANAGER,
+ "Gestionnaire de pointeurs"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DELETE_ENTRY,
- "Supprimer"
- )
+ MENU_ENUM_LABEL_VALUE_CUSTOM_RATIO,
+ "Rapport d'aspect personnalisé"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_FAVORITES,
- "Dossier de démarrage"
- )
+ MENU_ENUM_LABEL_VALUE_DATABASE_MANAGER,
+ "Gestionnaire de base de données"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT,
- ""
- )
+ MENU_ENUM_LABEL_VALUE_DATABASE_SELECTION,
+ "Sélection de base de données"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT,
- ""
- )
+ MENU_ENUM_LABEL_VALUE_DELETE_ENTRY,
+ "Supprimer"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DIRECTORY_NONE,
- ""
- )
+ MENU_ENUM_LABEL_VALUE_FAVORITES,
+ "Dossier de démarrage"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DIRECTORY_NOT_FOUND,
- "Dossier non trouvé."
- )
+ MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT,
+ ""
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DIRECTORY_SETTINGS,
- "Dossiers"
- )
+ MENU_ENUM_LABEL_VALUE_DIRECTORY_DEFAULT,
+ ""
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DISK_CYCLE_TRAY_STATUS,
- "État du plateau du lecteur de disque"
- )
+ MENU_ENUM_LABEL_VALUE_DIRECTORY_NONE,
+ ""
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DISK_IMAGE_APPEND,
- "Ajouter une image disque"
- )
+ MENU_ENUM_LABEL_VALUE_DIRECTORY_NOT_FOUND,
+ "Dossier non trouvé."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DISK_INDEX,
- "Numéro du disque"
- )
+ MENU_ENUM_LABEL_VALUE_DIRECTORY_SETTINGS,
+ "Dossiers"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DISK_OPTIONS,
- "Contrôle de disque"
- )
+ MENU_ENUM_LABEL_VALUE_DISK_CYCLE_TRAY_STATUS,
+ "État du plateau du lecteur de disque"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DONT_CARE,
- "Peu importe"
- )
+ MENU_ENUM_LABEL_VALUE_DISK_IMAGE_APPEND,
+ "Ajouter une image disque"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DOWNLOADED_FILE_DETECT_CORE_LIST,
- "Téléchargements"
- )
+ MENU_ENUM_LABEL_VALUE_DISK_INDEX,
+ "Numéro du disque"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE,
- "Télécharger un cœur"
- )
+ MENU_ENUM_LABEL_VALUE_DISK_OPTIONS,
+ "Contrôle de disque"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE_CONTENT,
- "Téléchargement de contenu"
- )
+ MENU_ENUM_LABEL_VALUE_DONT_CARE,
+ "Peu importe"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS,
- "Pilotes"
- )
+ MENU_ENUM_LABEL_VALUE_DOWNLOADED_FILE_DETECT_CORE_LIST,
+ "Téléchargements"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DUMMY_ON_CORE_SHUTDOWN,
- "Charger un cœur factice à la fermeture"
- )
+ MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE,
+ "Télécharger un cœur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHECK_FOR_MISSING_FIRMWARE,
- "Vérifier la présence du firmware avant le chargement"
- )
+ MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE_CONTENT,
+ "Téléchargement de contenu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DYNAMIC_WALLPAPER,
- "Arrière-plan dynamique"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR,
+ "Facteur de mise à l'échelle du menu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DYNAMIC_WALLPAPERS_DIRECTORY,
- "Arrière-plans dynamiques "
- )
+ MENU_ENUM_SUBLABEL_MENU_SCALE_FACTOR,
+ "Applique un facteur de mise à l'échelle global lors de l'affichage du menu. Peut être utile pour augmenter ou réduire la taille de l'interface utilisateur."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEEVOS_ENABLE,
- "Succès"
- )
+ MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS,
+ "Pilotes"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_FALSE,
- "Faux"
- )
+ MENU_ENUM_LABEL_VALUE_DUMMY_ON_CORE_SHUTDOWN,
+ "Charger un cœur factice à la fermeture"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_FASTFORWARD_RATIO,
- "Vitesse d'exécution maximale "
- )
+ MENU_ENUM_LABEL_VALUE_CHECK_FOR_MISSING_FIRMWARE,
+ "Vérifier la présence du firmware avant le chargement"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_FAVORITES_TAB,
- "Favoris"
- )
+ MENU_ENUM_LABEL_VALUE_DYNAMIC_WALLPAPER,
+ "Arrière-plan dynamique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_FPS_SHOW,
- "Afficher le nombre d'images/s"
- )
+ MENU_ENUM_LABEL_VALUE_DYNAMIC_WALLPAPERS_DIRECTORY,
+ "Arrière-plans dynamiques "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MEMORY_SHOW,
- "Inclure les détails de la mémoire"
- )
+ MENU_ENUM_LABEL_VALUE_CHEEVOS_ENABLE,
+ "Succès"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_FRAME_THROTTLE_ENABLE,
- "Limiter la vitesse d'exécution maximale"
- )
+ MENU_ENUM_LABEL_VALUE_FALSE,
+ "Faux"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VRR_RUNLOOP_ENABLE,
- "Synchroniser à la fréquence exacte du contenu (G-Sync, FreeSync)"
- )
+ MENU_ENUM_LABEL_VALUE_FASTFORWARD_RATIO,
+ "Vitesse d'exécution maximale "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_FRAME_THROTTLE_SETTINGS,
- "Limiteur d'images/s"
- )
+ MENU_ENUM_LABEL_VALUE_FAVORITES_TAB,
+ "Favoris"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_FRONTEND_COUNTERS,
- "Compteurs de l'interface utilisateur"
- )
+ MENU_ENUM_LABEL_VALUE_FPS_SHOW,
+ "Afficher le nombre d'images/s"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_GAME_SPECIFIC_OPTIONS,
- "Charger les options du cœur par contenu"
- )
+ MENU_ENUM_LABEL_VALUE_MEMORY_SHOW,
+ "Inclure les détails de la mémoire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_GAME_SPECIFIC_OPTIONS_CREATE,
- "Créer un fichier d'options pour le jeu"
- )
+ MENU_ENUM_LABEL_VALUE_FRAME_THROTTLE_ENABLE,
+ "Limiter la vitesse d'exécution maximale"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_GAME_SPECIFIC_OPTIONS_IN_USE,
- "Sauvegarder le fichier d'options pour le jeu"
- )
+ MENU_ENUM_LABEL_VALUE_VRR_RUNLOOP_ENABLE,
+ "Synchroniser à la fréquence exacte du contenu (G-Sync, FreeSync)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_HELP,
- "Aide"
- )
+ MENU_ENUM_LABEL_VALUE_FRAME_THROTTLE_SETTINGS,
+ "Limiteur d'images/s"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING,
- "Dépannage audio/vidéo"
- )
+ MENU_ENUM_LABEL_VALUE_FRONTEND_COUNTERS,
+ "Compteurs de l'interface utilisateur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD,
- "Changement de la manette virtuelle en surimpression"
- )
+ MENU_ENUM_LABEL_VALUE_GAME_SPECIFIC_OPTIONS,
+ "Charger les options du cœur par contenu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_HELP_CONTROLS,
- "Contrôles de base du menu"
- )
+ MENU_ENUM_LABEL_VALUE_GAME_SPECIFIC_OPTIONS_CREATE,
+ "Créer un fichier d'options pour le jeu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_HELP_LIST,
- "Aide"
- )
+ MENU_ENUM_LABEL_VALUE_GAME_SPECIFIC_OPTIONS_IN_USE,
+ "Sauvegarder le fichier d'options pour le jeu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_HELP_LOADING_CONTENT,
- "Chargement de contenu"
- )
+ MENU_ENUM_LABEL_VALUE_HELP,
+ "Aide"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_HELP_SCANNING_CONTENT,
- "Analyse de contenu"
- )
+ MENU_ENUM_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING,
+ "Dépannage audio/vidéo"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_HELP_WHAT_IS_A_CORE,
- "Qu'est-ce qu'un cœur ?"
- )
+ MENU_ENUM_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD,
+ "Changement de la manette virtuelle en surimpression"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_HISTORY_LIST_ENABLE,
- "Historique"
- )
+ MENU_ENUM_LABEL_VALUE_HELP_CONTROLS,
+ "Contrôles de base du menu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_HISTORY_TAB,
- "Historique"
- )
+ MENU_ENUM_LABEL_VALUE_HELP_LIST,
+ "Aide"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_HORIZONTAL_MENU,
- "Menu horizontal"
- )
+ MENU_ENUM_LABEL_VALUE_HELP_LOADING_CONTENT,
+ "Chargement de contenu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_IMAGES_TAB,
- "Images"
- )
+ MENU_ENUM_LABEL_VALUE_HELP_SCANNING_CONTENT,
+ "Analyse de contenu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INFORMATION,
- "Informations"
- )
+ MENU_ENUM_LABEL_VALUE_HELP_WHAT_IS_A_CORE,
+ "Qu'est-ce qu'un cœur ?"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INFORMATION_LIST,
- "Informations"
- )
+ MENU_ENUM_LABEL_VALUE_HISTORY_LIST_ENABLE,
+ "Historique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_ADC_TYPE,
- "Analogique vers numérique"
- )
+ MENU_ENUM_LABEL_VALUE_HISTORY_TAB,
+ "Historique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_ALL_USERS_CONTROL_MENU,
- "Tous les utilisateurs contrôlent le menu"
- )
+ MENU_ENUM_LABEL_VALUE_HORIZONTAL_MENU,
+ "Menu horizontal"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_LEFT_X,
- "Analogique gauche X"
- )
+ MENU_ENUM_LABEL_VALUE_IMAGES_TAB,
+ "Images"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_LEFT_X_MINUS,
- "Analogique gauche X- (gauche)"
- )
+ MENU_ENUM_LABEL_VALUE_INFORMATION,
+ "Informations"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_LEFT_X_PLUS,
- "Analogique gauche X+ (droite)"
- )
+ MENU_ENUM_LABEL_VALUE_INFORMATION_LIST,
+ "Informations"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_LEFT_Y,
- "Analogique gauche Y"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_ADC_TYPE,
+ "Analogique vers numérique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_LEFT_Y_MINUS,
- "Analogique gauche Y- (haut)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_ALL_USERS_CONTROL_MENU,
+ "Tous les utilisateurs contrôlent le menu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_LEFT_Y_PLUS,
- "Analogique gauche Y+ (bas)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_LEFT_X,
+ "Analogique gauche X"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_RIGHT_X,
- "Analogique droit X"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_LEFT_X_MINUS,
+ "Analogique gauche X- (gauche)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_RIGHT_X_MINUS,
- "Analogique droit X- (gauche)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_LEFT_X_PLUS,
+ "Analogique gauche X+ (droite)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_RIGHT_X_PLUS,
- "Analogique droit X+ (droite)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_LEFT_Y,
+ "Analogique gauche Y"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_RIGHT_Y,
- "Analogique droit Y"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_LEFT_Y_MINUS,
+ "Analogique gauche Y- (haut)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_RIGHT_Y_MINUS,
- "Analogique droit Y- (haut)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_LEFT_Y_PLUS,
+ "Analogique gauche Y+ (bas)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_RIGHT_Y_PLUS,
- "Analogique droit Y+ (bas)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_RIGHT_X,
+ "Analogique droit X"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_TRIGGER,
- "Gâchette de pistolet"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_RIGHT_X_MINUS,
+ "Analogique droit X- (gauche)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_RELOAD,
- "Rechargement de pistolet"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_RIGHT_X_PLUS,
+ "Analogique droit X+ (droite)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_AUX_A,
- "Pistolet aux A"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_RIGHT_Y,
+ "Analogique droit Y"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_AUX_B,
- "Pistolet aux B"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_RIGHT_Y_MINUS,
+ "Analogique droit Y- (haut)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_AUX_C,
- "Pistolet aux C"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_RIGHT_Y_PLUS,
+ "Analogique droit Y+ (bas)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_START,
- "Pistolet Start"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_TRIGGER,
+ "Gâchette de pistolet"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_SELECT,
- "Pistolet Select"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_RELOAD,
+ "Rechargement de pistolet"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_DPAD_UP,
- "Croix pistolet Haut"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_AUX_A,
+ "Pistolet aux A"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_DPAD_DOWN,
- "Croix pistolet Bas"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_AUX_B,
+ "Pistolet aux B"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_DPAD_LEFT,
- "Croix pistolet Gauche"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_AUX_C,
+ "Pistolet aux C"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_DPAD_RIGHT,
- "Croix pistolet Droite"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_START,
+ "Pistolet Start"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_AUTODETECT_ENABLE,
- "Configuration automatique"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_SELECT,
+ "Pistolet Select"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_BUTTON_AXIS_THRESHOLD,
- "Seuil de l'axe des touches "
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_DPAD_UP,
+ "Croix pistolet Haut"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_DEADZONE,
- "Deadzone analogique "
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_DPAD_DOWN,
+ "Croix pistolet Bas"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_SENSITIVITY,
- "Sensibilité analogique "
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_DPAD_LEFT,
+ "Croix pistolet Gauche"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_INPUT_SWAP_OK_CANCEL,
- "Inverser les touches OK/Annuler dans le menu"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_LIGHTGUN_DPAD_RIGHT,
+ "Croix pistolet Droite"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_BIND_ALL,
- "Tout assigner"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_AUTODETECT_ENABLE,
+ "Configuration automatique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_BIND_DEFAULT_ALL,
- "Tout assigner par défaut"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_BUTTON_AXIS_THRESHOLD,
+ "Seuil de l'axe des touches "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_BIND_TIMEOUT,
- "Délai pour l'assignation "
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_DEADZONE,
+ "Deadzone analogique "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_BIND_HOLD,
- "Temps de maintien pour l'assignation "
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_ANALOG_SENSITIVITY,
+ "Sensibilité analogique "
+ )
+#ifdef GEKKO
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_SCALE,
+ "Échelle de la souris"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_INPUT_MOUSE_SCALE,
+ "Ajuste l'échelle x/y pour la vitesse du pointeur Wiimote."
+ )
+#endif
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_BLOCK_TIMEOUT,
- "Délai pour bloquer l'assignation"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_INPUT_SWAP_OK_CANCEL,
+ "Inverser les touches OK/Annuler dans le menu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_DESCRIPTOR_HIDE_UNBOUND,
- "Masquer les descripteurs d'appellation des touches spécifiques au cœur non assignés"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_BIND_ALL,
+ "Tout assigner"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_DESCRIPTOR_LABEL_SHOW,
- "Afficher les descripteurs d'appellation des touches spécifiques au cœur"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_BIND_DEFAULT_ALL,
+ "Tout assigner par défaut"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_DEVICE_INDEX,
- "Numéro du périphérique"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_BIND_TIMEOUT,
+ "Délai pour l'assignation "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_DEVICE_TYPE,
- "Type de périphérique"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_BIND_HOLD,
+ "Temps de maintien pour l'assignation "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_INDEX,
- "Numéro de la souris"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_BLOCK_TIMEOUT,
+ "Délai pour bloquer l'assignation"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_DRIVER,
- "Entrées "
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_DESCRIPTOR_HIDE_UNBOUND,
+ "Masquer les descripteurs d'appellation des touches spécifiques au cœur non assignés"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_DUTY_CYCLE,
- "Cycle de répétition des touches "
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_DESCRIPTOR_LABEL_SHOW,
+ "Afficher les descripteurs d'appellation des touches spécifiques au cœur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_HOTKEY_BINDS,
- "Assignations des touches de raccourci"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_DEVICE_INDEX,
+ "Numéro du périphérique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_ICADE_ENABLE,
- "Mappage clavier manette"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_DEVICE_TYPE,
+ "Type de périphérique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_A,
- "Bouton A (droite)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_INDEX,
+ "Numéro de la souris"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_B,
- "Bouton B (bas)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_DRIVER,
+ "Entrées "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_DOWN,
- "Croix Bas"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_DUTY_CYCLE,
+ "Cycle de répétition des touches "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_L2,
- "Bouton L2 (gâchette)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_HOTKEY_BINDS,
+ "Assignations des touches de raccourci"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_L3,
- "Bouton L3 (pouce)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_ICADE_ENABLE,
+ "Mappage clavier manette"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_L,
- "Bouton L (épaule)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_A,
+ "Bouton A (droite)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_LEFT,
- "Croix Gauche"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_B,
+ "Bouton B (bas)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_R2,
- "Bouton R2 (gâchette)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_DOWN,
+ "Croix Bas"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_R3,
- "Bouton R3 (pouce)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_L2,
+ "Bouton L2 (gâchette)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_R,
- "Bouton R (épaule)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_L3,
+ "Bouton L3 (pouce)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_RIGHT,
- "Croix Droite"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_L,
+ "Bouton L (épaule)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_SELECT,
- "Bouton Select"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_LEFT,
+ "Croix Gauche"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_START,
- "Bouton Start"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_R2,
+ "Bouton R2 (gâchette)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_UP,
- "Croix Haut"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_R3,
+ "Bouton R3 (pouce)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_X,
- "Bouton X (haut)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_R,
+ "Bouton R (épaule)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_Y,
- "Bouton Y (gauche)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_RIGHT,
+ "Croix Droite"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_KEY,
- "(Touche : %s)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_SELECT,
+ "Bouton Select"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_LEFT,
- "Souris 1 (clic gauche)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_START,
+ "Bouton Start"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_RIGHT,
- "Souris 2 (clic droit)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_UP,
+ "Croix Haut"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_MIDDLE,
- "Souris 3 (clic molette)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_X,
+ "Bouton X (haut)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_BUTTON4,
- "Souris 4"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_Y,
+ "Bouton Y (gauche)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_BUTTON5,
- "Souris 5"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_KEY,
+ "(Touche : %s)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_WHEEL_UP,
- "Molette Haut"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_LEFT,
+ "Souris 1 (clic gauche)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_WHEEL_DOWN,
- "Molette Bas"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_RIGHT,
+ "Souris 2 (clic droit)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_HORIZ_WHEEL_UP,
- "Molette Gauche"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_MIDDLE,
+ "Souris 3 (clic molette)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_HORIZ_WHEEL_DOWN,
- "Molette Droite"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_BUTTON4,
+ "Souris 4"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_KEYBOARD_GAMEPAD_MAPPING_TYPE,
- "Type de mappage clavier manette"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_BUTTON5,
+ "Souris 5"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_MAX_USERS,
- "Nombre maximum d'utilisateurs "
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_WHEEL_UP,
+ "Molette Haut"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_MENU_ENUM_TOGGLE_GAMEPAD_COMBO,
- "Combinaison de touches pour afficher/masquer le menu "
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_WHEEL_DOWN,
+ "Molette Bas"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_CHEAT_INDEX_MINUS,
- "Numéro de cheat -"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_HORIZ_WHEEL_UP,
+ "Molette Gauche"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_CHEAT_INDEX_PLUS,
- "Numéro de cheat +"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_MOUSE_HORIZ_WHEEL_DOWN,
+ "Molette Droite"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_CHEAT_TOGGLE,
- "Cheats (activer/désactiver)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_KEYBOARD_GAMEPAD_MAPPING_TYPE,
+ "Type de mappage clavier manette"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_DISK_EJECT_TOGGLE,
- "Éjecter/insérer un disque"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_MAX_USERS,
+ "Nombre maximum d'utilisateurs "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_DISK_NEXT,
- "Disque suivant"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_MENU_ENUM_TOGGLE_GAMEPAD_COMBO,
+ "Combinaison de touches pour afficher/masquer le menu "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_DISK_PREV,
- "Disque précédent"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_CHEAT_INDEX_MINUS,
+ "Numéro de cheat -"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_ENABLE_HOTKEY,
- "Raccourcis"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_CHEAT_INDEX_PLUS,
+ "Numéro de cheat +"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_FAST_FORWARD_HOLD_KEY,
- "Avance rapide (maintenir)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_CHEAT_TOGGLE,
+ "Cheats (activer/désactiver)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_FAST_FORWARD_KEY,
- "Avance rapide (activer/désactiver)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_DISK_EJECT_TOGGLE,
+ "Éjecter/insérer un disque"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_FRAMEADVANCE,
- "Avance image par image"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_DISK_NEXT,
+ "Disque suivant"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_SEND_DEBUG_INFO,
- "Envoyer l'information de diagnostic"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_DISK_PREV,
+ "Disque précédent"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_FPS_TOGGLE,
- "Afficher/masquer les images/s"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_ENABLE_HOTKEY,
+ "Raccourcis"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_NETPLAY_HOST_TOGGLE,
- "Hébergement du jeu en réseau (activer/désactiver)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_FAST_FORWARD_HOLD_KEY,
+ "Avance rapide (maintenir)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_FULLSCREEN_TOGGLE_KEY,
- "Plein écran (activer/désactiver)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_FAST_FORWARD_KEY,
+ "Avance rapide (activer/désactiver)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_GRAB_MOUSE_TOGGLE,
- "Capture de la souris (activer/désactiver)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_FRAMEADVANCE,
+ "Avance image par image"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_GAME_FOCUS_TOGGLE,
- "Jeu au premier plan/en arrière-plan"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_SEND_DEBUG_INFO,
+ "Envoyer les informations de diagnostic"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_UI_COMPANION_TOGGLE,
- "Interface de bureau (afficher/masquer)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_FPS_TOGGLE,
+ "Afficher/masquer les images/s"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_LOAD_STATE_KEY,
- "Charger une sauvegarde instantanée"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_NETPLAY_HOST_TOGGLE,
+ "Hébergement du jeu en réseau (activer/désactiver)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_MENU_TOGGLE,
- "Menu (afficher/masquer)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_FULLSCREEN_TOGGLE_KEY,
+ "Plein écran (activer/désactiver)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE,
- "Enregistrement des touches pressées (activer/désactiver)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_GRAB_MOUSE_TOGGLE,
+ "Capture de la souris (activer/désactiver)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_MUTE,
- "Mode muet (activer/désactiver)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_GAME_FOCUS_TOGGLE,
+ "Jeu au premier plan/en arrière-plan"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_NETPLAY_GAME_WATCH,
- "Mode joueur/spectateur de jeu en réseau"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_UI_COMPANION_TOGGLE,
+ "Interface de bureau (afficher/masquer)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_OSK,
- "Clavier virtuel à l'écran (afficher/masquer)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_LOAD_STATE_KEY,
+ "Charger une sauvegarde instantanée"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_OVERLAY_NEXT,
- "Surimpression suivante"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_MENU_TOGGLE,
+ "Menu (afficher/masquer)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_PAUSE_TOGGLE,
- "Mettre en pause/reprendre"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE,
+ "Enregistrement de la relecture (activer/désactiver)"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_INPUT_META_MUTE,
+ "Mode muet (activer/désactiver)"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_INPUT_META_NETPLAY_GAME_WATCH,
+ "Mode joueur/spectateur de jeu en réseau"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_INPUT_META_OSK,
+ "Clavier virtuel à l'écran (afficher/masquer)"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_INPUT_META_OVERLAY_NEXT,
+ "Surimpression suivante"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_INPUT_META_PAUSE_TOGGLE,
+ "Mettre en pause/reprendre"
+ )
#ifdef HAVE_LAKKA
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_QUIT_KEY,
- "Redémarrer RetroArch"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_QUIT_KEY,
+ "Redémarrer RetroArch"
+ )
#else
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_QUIT_KEY,
- "Quitter RetroArch"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_QUIT_KEY,
+ "Quitter RetroArch"
+ )
#endif
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_RESET,
- "Redémarrer le jeu"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_RESET,
+ "Redémarrer le jeu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_REWIND,
- "Rembobiner"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_REWIND,
+ "Rembobiner"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_CHEAT_DETAILS,
- "Détails du cheat"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_CHEAT_DETAILS,
+ "Détails du cheat"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_CHEAT_SEARCH,
- "Lancer ou continuer la recherche de cheat"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_CHEAT_SEARCH,
+ "Lancer ou continuer la recherche de cheat"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_SAVE_STATE_KEY,
- "Sauvegarde instantanée"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_SAVE_STATE_KEY,
+ "Sauvegarde instantanée"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_SCREENSHOT,
- "Prendre une capture d'écran"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_SCREENSHOT,
+ "Prendre une capture d'écran"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_SHADER_NEXT,
- "Shader suivant"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_SHADER_NEXT,
+ "Shader suivant"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_SHADER_PREV,
- "Shader précédent"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_SHADER_PREV,
+ "Shader précédent"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_SLOWMOTION_HOLD_KEY,
- "Ralenti (maintenir)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_SLOWMOTION_HOLD_KEY,
+ "Ralenti (maintenir)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_SLOWMOTION_KEY,
- "Ralenti (activer/désactiver)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_SLOWMOTION_KEY,
+ "Ralenti (activer/désactiver)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_STATE_SLOT_MINUS,
- "Emplacement de sauvegarde instantanée -"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_STATE_SLOT_MINUS,
+ "Emplacement de sauvegarde instantanée -"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_STATE_SLOT_PLUS,
- "Emplacement de sauvegarde instantanée +"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_STATE_SLOT_PLUS,
+ "Emplacement de sauvegarde instantanée +"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_VOLUME_DOWN,
- "Volume -"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_VOLUME_DOWN,
+ "Volume -"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_VOLUME_UP,
- "Volume +"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_VOLUME_UP,
+ "Volume +"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_ENABLE,
- "Surimpression à l'écran"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_ENABLE,
+ "Surimpression à l'écran"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_HIDE_IN_MENU,
- "Masquer la surimpression dans le menu"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_HIDE_IN_MENU,
+ "Masquer la surimpression dans le menu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS,
- "Afficher les touches pressées sur la surimpression"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS,
+ "Afficher les touches pressées sur la surimpression"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS_PORT,
- "Port d'écoute des touches pressées affichées "
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_SHOW_MOUSE_CURSOR,
+ "Afficher le curseur de la souris avec la surimpression"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_POLL_TYPE_BEHAVIOR,
- "Détection des touches pressées "
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_AUTO_ROTATE,
+ "Rotation automatique de la surimpression"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_POLL_TYPE_BEHAVIOR_EARLY,
- "Précoce"
- )
+ MENU_ENUM_SUBLABEL_INPUT_OVERLAY_AUTO_ROTATE,
+ "Si supporté par la surimpression active, effectue une rotation automatique de la surimpression pour correspondre à l'orientation/rapport d'aspect de l'écran."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_POLL_TYPE_BEHAVIOR_LATE,
- "Tardive"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS_PORT,
+ "Port d'écoute des touches pressées affichées "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_POLL_TYPE_BEHAVIOR_NORMAL,
- "Normale"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_POLL_TYPE_BEHAVIOR,
+ "Détection des touches pressées "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_PREFER_FRONT_TOUCH,
- "Préférer le tactile avant"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_POLL_TYPE_BEHAVIOR_EARLY,
+ "Précoce"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_REMAPPING_DIRECTORY,
- "Remappage des touches "
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_POLL_TYPE_BEHAVIOR_LATE,
+ "Tardive"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_REMAP_BINDS_ENABLE,
- "Remapper les assignations d'entrées du cœur"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_POLL_TYPE_BEHAVIOR_NORMAL,
+ "Normale"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_SAVE_AUTOCONFIG,
- "Sauvegarder la configuration automatique"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_PREFER_FRONT_TOUCH,
+ "Préférer le tactile avant"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_SETTINGS,
- "Entrées"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_REMAPPING_DIRECTORY,
+ "Remappage des touches "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_SMALL_KEYBOARD_ENABLE,
- "Clavier minimal"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_REMAP_BINDS_ENABLE,
+ "Remapper les assignations d'entrées du cœur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_TOUCH_ENABLE,
- "Tactile"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_SAVE_AUTOCONFIG,
+ "Sauvegarder la configuration automatique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_TURBO_ENABLE,
- "Turbo"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_SETTINGS,
+ "Entrées"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_TURBO_PERIOD,
- "Délai d'activation du turbo "
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_SMALL_KEYBOARD_ENABLE,
+ "Clavier minimal"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_USER_BINDS,
- "Touches de l'utilisateur %u"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_TOUCH_ENABLE,
+ "Tactile"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LATENCY_SETTINGS,
- "Latence"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_TURBO_ENABLE,
+ "Turbo"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INTERNAL_STORAGE_STATUS,
- "État du stockage interne"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_TURBO_PERIOD,
+ "Délai d'activation du turbo "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_JOYPAD_AUTOCONFIG_DIR,
- "Configuration automatique des touches "
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_USER_BINDS,
+ "Touches de l'utilisateur %u"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_JOYPAD_DRIVER,
- "Manettes "
- )
+ MENU_ENUM_LABEL_VALUE_LATENCY_SETTINGS,
+ "Latence"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_INTERNAL_STORAGE_STATUS,
+ "État du stockage interne"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_JOYPAD_AUTOCONFIG_DIR,
+ "Configuration automatique des touches "
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_JOYPAD_DRIVER,
+ "Manettes "
+ )
#ifdef HAVE_LAKKA
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LAKKA_SERVICES,
- "Services"
- )
+ MENU_ENUM_LABEL_VALUE_LAKKA_SERVICES,
+ "Services"
+ )
#endif
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_CHINESE_SIMPLIFIED,
- "Chinois (Simplifié)"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_CHINESE_SIMPLIFIED,
+ "Chinois (Simplifié)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_CHINESE_TRADITIONAL,
- "Chinois (Traditionnel)"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_DUTCH,
- "Néerlandais"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_ENGLISH,
- "Anglais"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_ESPERANTO,
- "Espéranto"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_FRENCH,
- "Français"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_GERMAN,
- "Allemand"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_ITALIAN,
- "Italien"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_JAPANESE,
- "Japonais"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_KOREAN,
- "Coréen"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_POLISH,
- "Polonais"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_PORTUGUESE_BRAZIL,
- "Portugais (Brésil)"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_PORTUGUESE_PORTUGAL,
- "Portugais (Portugal)"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_RUSSIAN,
- "Russe"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_SPANISH,
- "Espagnol"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_VIETNAMESE,
- "Vietnamien"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_ARABIC,
- "Arabe"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_GREEK,
- "Grec"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_TURKISH,
- "Turc"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LEFT_ANALOG,
- "Analogique gauche"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH,
- "Cœurs "
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LIBRETRO_INFO_PATH,
- "Informations des cœurs "
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LIBRETRO_LOG_LEVEL,
- "Niveau de journalisation des cœurs"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LINEAR,
- "Linéaire"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE,
- "Charger l'archive"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY,
- "Charger l'élément récent"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_CHINESE_TRADITIONAL,
+ "Chinois (Traditionnel)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST,
- "Charger du contenu"
- )
-MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_DISC,
- "Load Disc")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_DUMP_DISC,
- "Dump Disc")
+ MENU_ENUM_LABEL_VALUE_LANG_DUTCH,
+ "Néerlandais"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LOAD_STATE,
- "Charger une sauvegarde instantanée"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_ENGLISH,
+ "Anglais"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LOCATION_ALLOW,
- "Autoriser la géolocalisation"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_ESPERANTO,
+ "Espéranto"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LOCATION_DRIVER,
- "Géolocalisation "
- )
+ MENU_ENUM_LABEL_VALUE_LANG_FRENCH,
+ "Français"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LOGGING_SETTINGS,
- "Journalisation"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_GERMAN,
+ "Allemand"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LOG_VERBOSITY,
- "Verbosité de la journalisation"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_ITALIAN,
+ "Italien"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LOG_TO_FILE,
- "Journaliser vers un fichier"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_JAPANESE,
+ "Japonais"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_LOG_TO_FILE,
- "Redirige les messages de la journalisation des évènements système vers un fichier. Requiert l'activation du réglage de 'Verbosité de la journalisation'."
- )
+ MENU_ENUM_LABEL_VALUE_LANG_KOREAN,
+ "Coréen"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LOG_TO_FILE_TIMESTAMP,
- "Fichiers de journalisation horodatés"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_POLISH,
+ "Polonais"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_LOG_TO_FILE_TIMESTAMP,
- "Lors de la journalisation vers un fichier, redirige la sortie de chaque session RetroArch vers un nouveau fichier horodaté. Si désactivé, le journal est écrasé chaque fois que RetroArch est redémarré."
- )
+ MENU_ENUM_LABEL_VALUE_LANG_PORTUGUESE_BRAZIL,
+ "Portugais (Brésil)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MAIN_MENU,
- "Menu principal"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_PORTUGUESE_PORTUGAL,
+ "Portugais (Portugal)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MANAGEMENT,
- "Réglages de la base de données"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_RUSSIAN,
+ "Russe"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME,
- "Couleur de thème du menu"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_SPANISH,
+ "Espagnol"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_BLUE,
- "Bleu"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_VIETNAMESE,
+ "Vietnamien"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_BLUE_GREY,
- "Bleu gris"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_ARABIC,
+ "Arabe"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_DARK_BLUE,
- "Bleu sombre"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_GREEK,
+ "Grec"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_GREEN,
- "Vert"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_TURKISH,
+ "Turc"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_NVIDIA_SHIELD,
- "NVIDIA Shield"
- )
+ MENU_ENUM_LABEL_VALUE_LEFT_ANALOG,
+ "Analogique gauche"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_RED,
- "Rouge"
- )
+ MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH,
+ "Cœurs "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_YELLOW,
- "Jaune"
- )
+ MENU_ENUM_LABEL_VALUE_LIBRETRO_INFO_PATH,
+ "Informations des cœurs "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_FOOTER_OPACITY,
- "Opacité du pied de page"
- )
+ MENU_ENUM_LABEL_VALUE_LIBRETRO_LOG_LEVEL,
+ "Niveau de journalisation des cœurs"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_HEADER_OPACITY,
- "Opacité de l'en-tête"
- )
+ MENU_ENUM_LABEL_VALUE_LINEAR,
+ "Linéaire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_DRIVER,
- "Menu "
- )
+ MENU_ENUM_LABEL_VALUE_LOAD_ARCHIVE,
+ "Charger l'archive"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_ENUM_THROTTLE_FRAMERATE,
- "Limiter les images/s dans le menu"
- )
+ MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY,
+ "Charger l'élément récent"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_FILE_BROWSER_SETTINGS,
- "Réglages"
- )
+ MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST,
+ "Charger du contenu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_LINEAR_FILTER,
- "Filtre linéaire dans le menu"
- )
+ MENU_ENUM_LABEL_VALUE_LOAD_DISC,
+ "Charger le disque"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_LINEAR_FILTER,
- "Ajoute un léger flou au menu pour atténuer le contour des pixels bruts."
- )
+ MENU_ENUM_LABEL_VALUE_DUMP_DISC,
+ "Importer le disque"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_HORIZONTAL_ANIMATION,
- "Animation horizontale"
- )
+ MENU_ENUM_LABEL_VALUE_LOAD_STATE,
+ "Charger une sauvegarde instantanée"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_SETTINGS,
- "Apparence"
- )
+ MENU_ENUM_LABEL_VALUE_LOCATION_ALLOW,
+ "Autoriser la géolocalisation"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_WALLPAPER,
- "Arrière-plan "
- )
+ MENU_ENUM_LABEL_VALUE_LOCATION_DRIVER,
+ "Géolocalisation "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_WALLPAPER_OPACITY,
- "Opacité de l'arrière-plan "
- )
+ MENU_ENUM_LABEL_VALUE_LOGGING_SETTINGS,
+ "Journalisation"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MISSING,
- "Manquant"
- )
+ MENU_ENUM_LABEL_VALUE_LOG_VERBOSITY,
+ "Verbosité de la journalisation"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MORE,
- "..."
- )
+ MENU_ENUM_LABEL_VALUE_LOG_TO_FILE,
+ "Journaliser vers un fichier"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MOUSE_ENABLE,
- "Prise en charge de la souris"
- )
+ MENU_ENUM_SUBLABEL_LOG_TO_FILE,
+ "Redirige les messages de la journalisation des évènements système vers un fichier. Requiert l'activation du réglage de 'Verbosité de la journalisation'."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MULTIMEDIA_SETTINGS,
- "Multimédia"
- )
+ MENU_ENUM_LABEL_VALUE_LOG_TO_FILE_TIMESTAMP,
+ "Fichiers de journalisation horodatés"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MUSIC_TAB,
- "Musique"
- )
+ MENU_ENUM_SUBLABEL_LOG_TO_FILE_TIMESTAMP,
+ "Lors de la journalisation vers un fichier, redirige la sortie de chaque session RetroArch vers un nouveau fichier horodaté. Si désactivé, le journal est écrasé chaque fois que RetroArch est redémarré."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NAVIGATION_BROWSER_FILTER_SUPPORTED_EXTENSIONS_ENABLE,
- "Filtrer les extension inconnues"
- )
+ MENU_ENUM_LABEL_VALUE_MAIN_MENU,
+ "Menu principal"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NAVIGATION_WRAPAROUND,
- "Navigation en boucle dans les menus"
- )
+ MENU_ENUM_LABEL_VALUE_MANAGEMENT,
+ "Réglages de la base de données"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NEAREST,
- "Au plus proche"
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME,
+ "Couleur de thème du menu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY,
- "Jeu en réseau"
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_BLUE,
+ "Bleu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_ALLOW_SLAVES,
- "Autoriser les clients en mode passif"
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_BLUE_GREY,
+ "Bleu gris"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_CHECK_FRAMES,
- "Vérifier la latence par image du jeu en réseau "
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_DARK_BLUE,
+ "Bleu sombre"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_INPUT_LATENCY_FRAMES_MIN,
- "Latence d'entrées minimale "
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_GREEN,
+ "Vert"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_INPUT_LATENCY_FRAMES_RANGE,
- "Intervalle de latence d'entrées "
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_NVIDIA_SHIELD,
+ "NVIDIA Shield"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_DELAY_FRAMES,
- "Retarder les images du jeu en réseau"
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_RED,
+ "Rouge"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_DISCONNECT,
- "Se déconnecter de l'hôte de jeu en réseau"
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_YELLOW,
+ "Jaune"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_ENABLE,
- "Jeu en réseau"
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_MATERIALUI,
+ "Material UI"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_ENABLE_CLIENT,
- "Se connecter à l'hôte de jeu en réseau"
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_MATERIALUI_DARK,
+ "Material UI Sombre"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_ENABLE_HOST,
- "Commencer à héberger le jeu en réseau"
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_OZONE_DARK,
+ "Ozone Sombre"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_DISABLE_HOST,
- "Arrêter l'hébergement de jeu en réseau"
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_NORD,
+ "Nord"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_IP_ADDRESS,
- "Adresse du serveur "
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_GRUVBOX_DARK,
+ "Gruvbox Sombre"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_LAN_SCAN_SETTINGS,
- "Analyser le réseau local"
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_SOLARIZED_DARK,
+ "Solarisé Sombre"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_MODE,
- "Client de jeu en réseau"
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_TRANSITION_ANIMATION,
+ "Animation de transition vers le menu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_NICKNAME,
- "Pseudo "
- )
+ MENU_ENUM_SUBLABEL_MATERIALUI_MENU_TRANSITION_ANIMATION,
+ "Active des effets d'animation de transition lors de la navigation entre différents niveaux du menu."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_PASSWORD,
- "Mot de passe du serveur "
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_TRANSITION_ANIM_AUTO,
+ "Auto"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_PUBLIC_ANNOUNCE,
- "Annoncer le jeu en réseau publiquement"
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_TRANSITION_ANIM_FADE,
+ "Fondu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_REQUEST_DEVICE_I,
- "Demander le périphérique %u"
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_TRANSITION_ANIM_SLIDE,
+ "Glissement"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_REQUIRE_SLAVES,
- "Interdire les clients non passifs"
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_TRANSITION_ANIM_NONE,
+ "Désactivée"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_SETTINGS,
- "Réglages de jeu en réseau"
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_FOOTER_OPACITY,
+ "Opacité du pied de page"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_ANALOG,
- "Partage des entrées analogiques "
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_HEADER_OPACITY,
+ "Opacité de l'en-tête"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_ANALOG_MAX,
- "Maximum"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_DRIVER,
+ "Menu "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_ANALOG_AVERAGE,
- "Moyenne"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_ENUM_THROTTLE_FRAMERATE,
+ "Limiter les images/s dans le menu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_DIGITAL,
- "Partage des entrées numériques "
- )
+ MENU_ENUM_LABEL_VALUE_MENU_FILE_BROWSER_SETTINGS,
+ "Réglages"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_DIGITAL_OR,
- "Partager"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_LINEAR_FILTER,
+ "Filtre linéaire dans le menu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_DIGITAL_XOR,
- "Saisir"
- )
+ MENU_ENUM_SUBLABEL_MENU_LINEAR_FILTER,
+ "Ajoute un léger flou au menu pour atténuer le contour des pixels bruts."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_DIGITAL_VOTE,
- "Voter"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_HORIZONTAL_ANIMATION,
+ "Animation horizontale"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_NONE,
- "Ne pas partager"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_SETTINGS,
+ "Apparence"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_NO_PREFERENCE,
- "Pas de préférence"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_WALLPAPER,
+ "Arrière-plan "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_START_AS_SPECTATOR,
- "Mode spectateur de jeu en réseau"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_WALLPAPER_OPACITY,
+ "Opacité de l'arrière-plan "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_STATELESS_MODE,
- "Mode sans état de jeu en réseau"
- )
+ MENU_ENUM_LABEL_VALUE_MISSING,
+ "Manquant"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_SPECTATE_PASSWORD,
- "Mot de passe du serveur pour les spectateurs "
- )
+ MENU_ENUM_LABEL_VALUE_MORE,
+ "..."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_SPECTATOR_MODE_ENABLE,
- "Spectateur de jeu en réseau"
- )
+ MENU_ENUM_LABEL_VALUE_MOUSE_ENABLE,
+ "Prise en charge de la souris"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_TCP_UDP_PORT,
- "Port TCP du jeu en réseau "
- )
+ MENU_ENUM_LABEL_VALUE_MULTIMEDIA_SETTINGS,
+ "Multimédia"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_NAT_TRAVERSAL,
- "Traversée du NAT pour le jeu en réseau"
- )
+ MENU_ENUM_LABEL_VALUE_MUSIC_TAB,
+ "Musique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETWORK_CMD_ENABLE,
- "Commandes réseau"
- )
+ MENU_ENUM_LABEL_VALUE_NAVIGATION_BROWSER_FILTER_SUPPORTED_EXTENSIONS_ENABLE,
+ "Filtrer les extension inconnues"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETWORK_CMD_PORT,
- "Port des commandes réseau"
- )
+ MENU_ENUM_LABEL_VALUE_NAVIGATION_WRAPAROUND,
+ "Navigation en boucle dans les menus"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETWORK_INFORMATION,
- "Informations réseau"
- )
+ MENU_ENUM_LABEL_VALUE_NEAREST,
+ "Au plus proche"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETWORK_REMOTE_ENABLE,
- "Manette en réseau"
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY,
+ "Jeu en réseau"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETWORK_REMOTE_PORT,
- "Port de base de la manette en réseau"
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_ALLOW_SLAVES,
+ "Autoriser les clients en mode passif"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETWORK_SETTINGS,
- "Réseau"
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_CHECK_FRAMES,
+ "Vérifier la latence par image du jeu en réseau "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NO,
- "Non"
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_INPUT_LATENCY_FRAMES_MIN,
+ "Latence d'entrées minimale "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NONE,
- "Aucun(e)"
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_INPUT_LATENCY_FRAMES_RANGE,
+ "Intervalle de latence d'entrées "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NOT_AVAILABLE,
- "Indisponible"
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_DELAY_FRAMES,
+ "Retarder les images du jeu en réseau"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NO_ACHIEVEMENTS_TO_DISPLAY,
- "Aucun succès à afficher."
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_DISCONNECT,
+ "Se déconnecter de l'hôte de jeu en réseau"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NO_CORE,
- "Pas de cœur"
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_ENABLE,
+ "Jeu en réseau"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NO_CORES_AVAILABLE,
- "Pas de cœurs disponibles."
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_ENABLE_CLIENT,
+ "Se connecter à l'hôte de jeu en réseau"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NO_CORE_INFORMATION_AVAILABLE,
- "Pas d'informations de cœur disponibles."
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_ENABLE_HOST,
+ "Commencer à héberger le jeu en réseau"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NO_CORE_OPTIONS_AVAILABLE,
- "Pas d'options de cœur disponibles."
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_DISABLE_HOST,
+ "Arrêter l'hébergement de jeu en réseau"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NO_ENTRIES_TO_DISPLAY,
- "Pas d'entrées à afficher."
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_IP_ADDRESS,
+ "Adresse du serveur "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NO_HISTORY_AVAILABLE,
- "Pas d'historique disponible."
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_LAN_SCAN_SETTINGS,
+ "Analyser le réseau local"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE,
- "Pas d'information disponible."
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_MODE,
+ "Client de jeu en réseau"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NO_ITEMS,
- "Aucun élément."
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_NICKNAME,
+ "Pseudo "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NO_NETPLAY_HOSTS_FOUND,
- "Aucun hôte de jeu en réseau trouvé."
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_PASSWORD,
+ "Mot de passe du serveur "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NO_NETWORKS_FOUND,
- "Aucun réseau trouvé."
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_PUBLIC_ANNOUNCE,
+ "Annoncer le jeu en réseau publiquement"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NO_PERFORMANCE_COUNTERS,
- "Pas de compteurs de performance."
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_REQUEST_DEVICE_I,
+ "Demander le périphérique %u"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NO_PLAYLISTS,
- "Pas de listes de lecture."
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_REQUIRE_SLAVES,
+ "Interdire les clients non passifs"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NO_PLAYLIST_ENTRIES_AVAILABLE,
- "Liste de lecture vide."
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_SETTINGS,
+ "Réglages de jeu en réseau"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NO_SETTINGS_FOUND,
- "Pas de réglages trouvés."
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_ANALOG,
+ "Partage des entrées analogiques "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NO_SHADER_PARAMETERS,
- "Aucun paramètre de shader."
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_ANALOG_MAX,
+ "Maximum"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_OFF,
- "Désactivé(e)"
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_ANALOG_AVERAGE,
+ "Moyenne"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ON,
- "Activé"
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_DIGITAL,
+ "Partage des entrées numériques "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ONLINE,
- "En ligne"
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_DIGITAL_OR,
+ "Partager"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ONLINE_UPDATER,
- "Mise à jour en ligne"
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_DIGITAL_XOR,
+ "Saisir"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ONSCREEN_DISPLAY_SETTINGS,
- "Affichage à l'écran"
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_DIGITAL_VOTE,
+ "Voter"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ONSCREEN_OVERLAY_SETTINGS,
- "Surimpressions à l'écran"
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_NONE,
+ "Ne pas partager"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_ONSCREEN_OVERLAY_SETTINGS,
- "Ajuste les cadres d'images et les touches à l'écran"
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_SHARE_NO_PREFERENCE,
+ "Pas de préférence"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ONSCREEN_NOTIFICATIONS_SETTINGS,
- "Notifications à l'écran"
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_START_AS_SPECTATOR,
+ "Mode spectateur de jeu en réseau"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_ONSCREEN_NOTIFICATIONS_SETTINGS,
- "Ajuste les notifications à l'écran"
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_STATELESS_MODE,
+ "Mode sans état de jeu en réseau"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_OPEN_ARCHIVE,
- "Parcourir l'archive"
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_SPECTATE_PASSWORD,
+ "Mot de passe du serveur pour les spectateurs "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_OPTIONAL,
- "Optionnel"
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_SPECTATOR_MODE_ENABLE,
+ "Spectateur de jeu en réseau"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_OVERLAY,
- "Surimpression à l'écran"
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_TCP_UDP_PORT,
+ "Port TCP du jeu en réseau "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_OVERLAY_AUTOLOAD_PREFERRED,
- "Charger la surimpression préférée"
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_NAT_TRAVERSAL,
+ "Traversée du NAT pour le jeu en réseau"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_OVERLAY_DIRECTORY,
- "Surimpressions à l'écran "
- )
+ MENU_ENUM_LABEL_VALUE_NETWORK_CMD_ENABLE,
+ "Commandes réseau"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_OVERLAY_OPACITY,
- "Opacité de la surimpression "
- )
+ MENU_ENUM_LABEL_VALUE_NETWORK_CMD_PORT,
+ "Port des commandes réseau"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_OVERLAY_PRESET,
- "Préréglages de surimpression "
- )
+ MENU_ENUM_LABEL_VALUE_NETWORK_INFORMATION,
+ "Informations réseau"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_OVERLAY_SCALE,
- "Échelle de la surimpression "
- )
+ MENU_ENUM_LABEL_VALUE_NETWORK_REMOTE_ENABLE,
+ "Manette en réseau"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_OVERLAY_SETTINGS,
- "Surimpression à l'écran"
- )
+ MENU_ENUM_LABEL_VALUE_NETWORK_REMOTE_PORT,
+ "Port de base de la manette en réseau"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PAL60_ENABLE,
- "Utiliser le mode PAL60"
- )
+ MENU_ENUM_LABEL_VALUE_NETWORK_ON_DEMAND_THUMBNAILS,
+ "Télécharger les miniatures à la demande"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PARENT_DIRECTORY,
- "Dossier parent"
- )
+ MENU_ENUM_SUBLABEL_NETWORK_ON_DEMAND_THUMBNAILS,
+ "Télécharge automatiquement les miniatures manquantes lors de la navigation dans les listes de lecture. Affecte grandement les performances."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_FILE_BROWSER_OPEN_UWP_PERMISSIONS,
- "Activer l'accès aux fichiers externes"
- )
+ MENU_ENUM_LABEL_VALUE_NETWORK_SETTINGS,
+ "Réseau"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_FILE_BROWSER_OPEN_UWP_PERMISSIONS,
- "Ouvrir les réglages d'autorisations d'accès aux fichiers de Windows"
- )
+ MENU_ENUM_LABEL_VALUE_NO,
+ "Non"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_FILE_BROWSER_OPEN_PICKER,
- "Ouvrir..."
- )
+ MENU_ENUM_LABEL_VALUE_NONE,
+ "Aucun(e)"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_FILE_BROWSER_OPEN_PICKER,
- "Ouvrir un autre dossier à l'aide du sélecteur de fichiers système"
- )
+ MENU_ENUM_LABEL_VALUE_NOT_AVAILABLE,
+ "Indisponible"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PAUSE_LIBRETRO,
- "Mettre en pause quand le menu est activé"
- )
+ MENU_ENUM_LABEL_VALUE_NO_ACHIEVEMENTS_TO_DISPLAY,
+ "Aucun succès à afficher."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PAUSE_NONACTIVE,
- "Ne pas fonctionner en arrière-plan"
- )
+ MENU_ENUM_LABEL_VALUE_NO_CORE,
+ "Aucun cœur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PERFCNT_ENABLE,
- "Compteurs de performance"
- )
+ MENU_ENUM_LABEL_VALUE_NO_CORES_AVAILABLE,
+ "Aucun cœur disponible."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PLAYLISTS_TAB,
- "Listes de lecture"
- )
+ MENU_ENUM_LABEL_VALUE_NO_CORE_INFORMATION_AVAILABLE,
+ "Aucune information de cœur disponible."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PLAYLIST_DIRECTORY,
- "Listes de lecture "
- )
+ MENU_ENUM_LABEL_VALUE_NO_CORE_OPTIONS_AVAILABLE,
+ "Aucune option de cœur disponible."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS,
- "Listes de lecture"
- )
+ MENU_ENUM_LABEL_VALUE_NO_ENTRIES_TO_DISPLAY,
+ "Aucune entrée à afficher."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_NO_HISTORY_AVAILABLE,
+ "Aucun historique disponible."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE,
+ "Aucune information disponible."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_NO_ITEMS,
+ "Aucun élément."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_NO_NETPLAY_HOSTS_FOUND,
+ "Aucun hôte de jeu en réseau trouvé."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_NO_NETWORKS_FOUND,
+ "Aucun réseau trouvé."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_NO_PERFORMANCE_COUNTERS,
+ "Aucun compteur de performance."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_NO_PLAYLISTS,
+ "Aucune liste de lecture."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_NO_PLAYLIST_ENTRIES_AVAILABLE,
+ "Liste de lecture vide."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_NO_SETTINGS_FOUND,
+ "Aucun fichier de réglages trouvé."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_NO_PRESETS_FOUND,
+ "Aucun paramètre de shaders automatiques trouvé."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_NO_SHADER_PARAMETERS,
+ "Aucun paramètre de shaders."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_OFF,
+ "Désactivé"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_ON,
+ "Activé"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_ONLINE,
+ "En ligne"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_ONLINE_UPDATER,
+ "Mise à jour en ligne"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_ONSCREEN_DISPLAY_SETTINGS,
+ "Affichage à l'écran"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_ONSCREEN_OVERLAY_SETTINGS,
+ "Surimpressions à l'écran"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_ONSCREEN_OVERLAY_SETTINGS,
+ "Ajuste les cadres d'images et les touches à l'écran"
+ )
+#ifdef HAVE_VIDEO_LAYOUT
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_ONSCREEN_VIDEO_LAYOUT_SETTINGS,
+ "Dispositions d'affichage"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_ONSCREEN_VIDEO_LAYOUT_SETTINGS,
+ "Ajuste la disposition de l'affichage"
+ )
+#endif
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_ONSCREEN_NOTIFICATIONS_SETTINGS,
+ "Notifications à l'écran"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_ONSCREEN_NOTIFICATIONS_SETTINGS,
+ "Ajuste les notifications à l'écran"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_OPEN_ARCHIVE,
+ "Parcourir l'archive"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_OPTIONAL,
+ "Optionnel"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_OVERLAY,
+ "Surimpression à l'écran"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_OVERLAY_AUTOLOAD_PREFERRED,
+ "Charger la surimpression préférée"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_OVERLAY_DIRECTORY,
+ "Surimpressions à l'écran "
+ )
+#ifdef HAVE_VIDEO_LAYOUT
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_VIDEO_LAYOUT_DIRECTORY,
+ "Dispositions d'affichage "
+ )
+#endif
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_OVERLAY_OPACITY,
+ "Opacité de la surimpression "
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_OVERLAY_PRESET,
+ "Préréglages de surimpression "
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_OVERLAY_SCALE,
+ "Échelle de la surimpression "
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_OVERLAY_SETTINGS,
+ "Surimpression à l'écran"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PAL60_ENABLE,
+ "Utiliser le mode PAL60"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PARENT_DIRECTORY,
+ "Dossier parent"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_FILE_BROWSER_OPEN_UWP_PERMISSIONS,
+ "Autoriser l'accès aux fichiers externes"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_FILE_BROWSER_OPEN_UWP_PERMISSIONS,
+ "Ouvrir les réglages d'autorisations d'accès aux fichiers de Windows"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_FILE_BROWSER_OPEN_PICKER,
+ "Ouvrir..."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_FILE_BROWSER_OPEN_PICKER,
+ "Ouvrir un autre dossier à l'aide du sélecteur de fichiers système"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PAUSE_LIBRETRO,
+ "Mettre en pause quand le menu est activé"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MENU_SAVESTATE_RESUME,
+ "Reprendre le contenu après l'utilisation de sauvegardes instantanées"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_MENU_SAVESTATE_RESUME,
+ "Ferme le menu automatiquement et reprends le contenu actuel après la sélection de 'Sauvegarde instantanée' ou 'Charger une sauvegarde instantanée' depuis le menu rapide. Désactiver cette option peut améliorer les performances de sauvegarde instantanée sur des appareils très lents."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PAUSE_NONACTIVE,
+ "Ne pas fonctionner en arrière-plan"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PERFCNT_ENABLE,
+ "Compteurs de performance"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLISTS_TAB,
+ "Listes de lecture"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_DIRECTORY,
+ "Listes de lecture "
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS,
+ "Listes de lecture"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LIST,
+ "Gestionnaire de listes de lecture"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LIST,
+ "Effectue des tâches de maintenance sur la liste de lecture sélectionnée (assigner/réinitialiser les associations aux cœurs par défaut, par exemple)."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_DEFAULT_CORE,
+ "Cœur par défaut"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_DEFAULT_CORE,
+ "Spécifie le cœur à utiliser lors du lancement de contenu via une entrée de liste de lecture qui n'est pas déjà associée à un cœur."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_RESET_CORES,
+ "Réinitialiser les associations au cœur"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_RESET_CORES,
+ "Supprimer les associations au cœur existantes pour toutes les entrées de la liste de lecture."
+ )
+MSG_HASH(
+ MSG_PLAYLIST_MANAGER_RESETTING_CORES,
+ "Réinitialisation des cœurs : "
+ )
+MSG_HASH(
+ MSG_PLAYLIST_MANAGER_CORES_RESET,
+ "Cœurs réinitialisés : "
+ )
MSG_HASH(
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
- "Label Display Mode"
+ "Mode d'affichage des titres"
)
MSG_HASH(
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
- "Change how the content labels are displayed in this playlist."
+ "Change la façon dont le titre du contenu est affiché dans cette liste de lecture."
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
- "Show full labels"
+ "Afficher le titre complet"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
- "Remove () content"
+ "Supprimer le contenu entre ()"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
- "Remove [] content"
+ "Supprimer le contenu entre []"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
- "Remove () and []"
+ "Supprimer le contenu entre () et []"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
- "Keep region"
+ "Garder la région"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
- "Keep disc index"
+ "Garder le numéro du disque"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
- "Keep region and disc index"
+ "Garder la région et le numéro du disque"
)
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
- "Prise en charge du tactile"
- )
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_THUMBNAIL_MODE_DEFAULT,
+ "Par défaut du système"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PORT,
- "Port"
- )
+ MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
+ "Prise en charge du tactile"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PRESENT,
- "Présent"
- )
+ MENU_ENUM_LABEL_VALUE_PORT,
+ "Port"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PRIVACY_SETTINGS,
- "Confidentialité"
- )
+ MENU_ENUM_LABEL_VALUE_PRESENT,
+ "Présent"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MIDI_SETTINGS,
- "MIDI"
- )
+ MENU_ENUM_LABEL_VALUE_PRIVACY_SETTINGS,
+ "Confidentialité"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MIDI_SETTINGS,
+ "MIDI"
+ )
#ifdef HAVE_LAKKA
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUIT_RETROARCH,
- "Redémarrer RetroArch"
- )
+ MENU_ENUM_LABEL_VALUE_QUIT_RETROARCH,
+ "Redémarrer RetroArch"
+ )
#else
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUIT_RETROARCH,
- "Quitter RetroArch"
- )
+ MENU_ENUM_LABEL_VALUE_QUIT_RETROARCH,
+ "Quitter RetroArch"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_RESTART_RETROARCH,
+ "Redémarrer RetroArch"
+ )
#endif
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_ANALOG,
- "Analogique pris en charge"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_DETAIL,
+ "Entrée de base de données"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_BBFC_RATING,
- "Classification BBFC"
- )
+ MENU_ENUM_SUBLABEL_RDB_ENTRY_DETAIL,
+ "Affiche les informations dans la base de données pour le contenu actuel"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_CERO_RATING,
- "Classification CERO"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_ANALOG,
+ "Analogique pris en charge"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_COOP,
- "Coopératif pris en charge"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_BBFC_RATING,
+ "Classification BBFC"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_CRC32,
- "CRC32"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_CERO_RATING,
+ "Classification CERO"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_DESCRIPTION,
- "Description"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_COOP,
+ "Coopératif pris en charge"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_DEVELOPER,
- "Développeur"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_CRC32,
+ "CRC32"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_EDGE_MAGAZINE_ISSUE,
- "Numéro du magazine Edge"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_DESCRIPTION,
+ "Description"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_EDGE_MAGAZINE_RATING,
- "Classification du magazine Edge"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_DEVELOPER,
+ "Développeur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_EDGE_MAGAZINE_REVIEW,
- "Critique du magazine Edge"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_EDGE_MAGAZINE_ISSUE,
+ "Numéro du magazine Edge"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_ELSPA_RATING,
- "Classification ELSPA"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_EDGE_MAGAZINE_RATING,
+ "Classification du magazine Edge"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_ENHANCEMENT_HW,
- "Matériel d'amélioration"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_EDGE_MAGAZINE_REVIEW,
+ "Critique du magazine Edge"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_ESRB_RATING,
- "Classification ESRB"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_ELSPA_RATING,
+ "Classification ELSPA"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_FAMITSU_MAGAZINE_RATING,
- "Classification du magazine Famitsu"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_ENHANCEMENT_HW,
+ "Améliorations matérielles"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_FRANCHISE,
- "Franchise"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_ESRB_RATING,
+ "Classification ESRB"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_GENRE,
- "Genre"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_FAMITSU_MAGAZINE_RATING,
+ "Classification du magazine Famitsu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_MD5,
- "MD5"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_FRANCHISE,
+ "Franchise"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_NAME,
- "Nom"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_GENRE,
+ "Genre"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_ORIGIN,
- "Origine"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_MD5,
+ "MD5"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_PEGI_RATING,
- "Classification PEGI"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_NAME,
+ "Nom"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_PUBLISHER,
- "Éditeur"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_ORIGIN,
+ "Origine"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_RELEASE_MONTH,
- "Mois de sortie"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_PEGI_RATING,
+ "Classification PEGI"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_RELEASE_YEAR,
- "Année de sortie"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_PUBLISHER,
+ "Éditeur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_RUMBLE,
- "Vibration prise en charge"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_RELEASE_MONTH,
+ "Mois de sortie"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_SERIAL,
- "Numéro de série"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_RELEASE_YEAR,
+ "Année de sortie"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_SHA1,
- "SHA1"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_RUMBLE,
+ "Vibration prise en charge"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_START_CONTENT,
- "Démarrer le contenu"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_SERIAL,
+ "Numéro de série"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RDB_ENTRY_TGDB_RATING,
- "Classification TGDB"
- )
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_SHA1,
+ "SHA1"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_START_CONTENT,
+ "Démarrer le contenu"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_TGDB_RATING,
+ "Classification TGDB"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_CONTENT_INFO_LABEL,
+ "Nom"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_CONTENT_INFO_PATH,
+ "Emplacement du fichier"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_CONTENT_INFO_CORE_NAME,
+ "Cœur"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_CONTENT_INFO_DATABASE,
+ "Base de données"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_CONTENT_INFO_RUNTIME,
+ "Temps de jeu"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_CONTENT_INFO_LAST_PLAYED,
+ "Dernière partie"
+ )
#ifdef HAVE_LAKKA_SWITCH
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_REBOOT,
- "Redémarrer en mode RCM"
- )
+ MENU_ENUM_LABEL_VALUE_REBOOT,
+ "Redémarrer en mode RCM"
+ )
#else
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_REBOOT,
- "Redémarrer"
- )
+ MENU_ENUM_LABEL_VALUE_REBOOT,
+ "Redémarrer"
+ )
#endif
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RECORDING_CONFIG_DIRECTORY,
- "Configuration d'enregistrement"
- )
+ MENU_ENUM_LABEL_VALUE_RECORDING_CONFIG_DIRECTORY,
+ "Configuration d'enregistrement"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RECORDING_OUTPUT_DIRECTORY,
- "Dossier d'enregistrement "
- )
+ MENU_ENUM_LABEL_VALUE_RECORDING_OUTPUT_DIRECTORY,
+ "Dossier d'enregistrement "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RECORDING_SETTINGS,
- "Enregistrement"
- )
+ MENU_ENUM_LABEL_VALUE_RECORDING_SETTINGS,
+ "Enregistrement"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RECORD_CONFIG,
- "Configuration d'enregistrement personnalisée "
- )
+ MENU_ENUM_LABEL_VALUE_RECORD_CONFIG,
+ "Configuration d'enregistrement personnalisée "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_STREAM_CONFIG,
- "Configuration de diffusion personnalisée "
- )
+ MENU_ENUM_LABEL_VALUE_STREAM_CONFIG,
+ "Configuration de diffusion personnalisée "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RECORD_DRIVER,
- "Enregistrement "
- )
+ MENU_ENUM_LABEL_VALUE_RECORD_DRIVER,
+ "Enregistrement "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MIDI_DRIVER,
- "MIDI "
- )
+ MENU_ENUM_LABEL_VALUE_MIDI_DRIVER,
+ "MIDI "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RECORD_ENABLE,
- "Prise en charge de l'enregistrement"
- )
+ MENU_ENUM_LABEL_VALUE_RECORD_ENABLE,
+ "Prise en charge de l'enregistrement"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RECORD_PATH,
- "Sauvegarder l'enregistrement sous..."
- )
+ MENU_ENUM_LABEL_VALUE_RECORD_PATH,
+ "Sauvegarder l'enregistrement sous..."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RECORD_USE_OUTPUT_DIRECTORY,
- "Sauvegarder les enregistrements dans le dossier de sortie"
- )
+ MENU_ENUM_LABEL_VALUE_RECORD_USE_OUTPUT_DIRECTORY,
+ "Sauvegarder les enregistrements dans le dossier de sortie"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_REMAP_FILE,
- "Fichier de remappage"
- )
+ MENU_ENUM_LABEL_VALUE_REMAP_FILE,
+ "Fichier de remappage"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_REMAP_FILE_LOAD,
- "Charger un fichier de remappage"
- )
+ MENU_ENUM_LABEL_VALUE_REMAP_FILE_LOAD,
+ "Charger un fichier de remappage"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_REMAP_FILE_SAVE_CORE,
- "Sauvegarder le remappage pour le cœur"
- )
+ MENU_ENUM_LABEL_VALUE_REMAP_FILE_SAVE_CORE,
+ "Sauvegarder le remappage pour le cœur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_REMAP_FILE_SAVE_CONTENT_DIR,
- "Sauvegarder le remappage pour le dossier"
- )
+ MENU_ENUM_LABEL_VALUE_REMAP_FILE_SAVE_CONTENT_DIR,
+ "Sauvegarder le remappage pour le dossier"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_REMAP_FILE_SAVE_GAME,
- "Sauvegarder le remappage pour le jeu"
- )
+ MENU_ENUM_LABEL_VALUE_REMAP_FILE_SAVE_GAME,
+ "Sauvegarder le remappage pour le jeu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_REMAP_FILE_REMOVE_CORE,
- "Supprimer le remappage pour le cœur"
- )
+ MENU_ENUM_LABEL_VALUE_REMAP_FILE_REMOVE_CORE,
+ "Supprimer le remappage pour le cœur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_REMAP_FILE_REMOVE_GAME,
- "Supprimer le remappage pour le jeu"
- )
+ MENU_ENUM_LABEL_VALUE_REMAP_FILE_REMOVE_GAME,
+ "Supprimer le remappage pour le jeu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_REMAP_FILE_REMOVE_CONTENT_DIR,
- "Supprimer le remappage pour le dossier"
- )
+ MENU_ENUM_LABEL_VALUE_REMAP_FILE_REMOVE_CONTENT_DIR,
+ "Supprimer le remappage pour le dossier"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_REQUIRED,
- "Requis"
- )
+ MENU_ENUM_LABEL_VALUE_REQUIRED,
+ "Requis"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RESTART_CONTENT,
- "Redémarrer"
- )
+ MENU_ENUM_LABEL_VALUE_RESTART_CONTENT,
+ "Redémarrer"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RESTART_RETROARCH,
- "Redémarrer RetroArch"
- )
+ MENU_ENUM_LABEL_VALUE_RESUME,
+ "Reprendre"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RESUME,
- "Reprendre"
- )
+ MENU_ENUM_LABEL_VALUE_RESUME_CONTENT,
+ "Reprendre"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RESUME_CONTENT,
- "Reprendre"
- )
+ MENU_ENUM_LABEL_VALUE_RETROKEYBOARD,
+ "RetroClavier"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RETROKEYBOARD,
- "RetroClavier"
- )
+ MENU_ENUM_LABEL_VALUE_RETROPAD,
+ "RetroManette"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RETROPAD,
- "RetroManette"
- )
+ MENU_ENUM_LABEL_VALUE_RETROPAD_WITH_ANALOG,
+ "RetroManette analogique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RETROPAD_WITH_ANALOG,
- "RetroManette analogique"
- )
+ MENU_ENUM_LABEL_VALUE_RETRO_ACHIEVEMENTS_SETTINGS,
+ "Succès"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RETRO_ACHIEVEMENTS_SETTINGS,
- "Succès"
- )
+ MENU_ENUM_LABEL_VALUE_REWIND_ENABLE,
+ "Prise en charge du rembobinage"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_REWIND_ENABLE,
- "Prise en charge du rembobinage"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_APPLY_AFTER_TOGGLE,
+ "Appliquer après l'activation"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_APPLY_AFTER_TOGGLE,
- "Appliquer après l'activation"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_APPLY_AFTER_LOAD,
+ "Appliquer les cheats au chargement du jeu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_APPLY_AFTER_LOAD,
- "Appliquer les cheats au chargement du jeu"
- )
+ MENU_ENUM_LABEL_VALUE_REWIND_GRANULARITY,
+ "Précision du rembobinage "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_REWIND_GRANULARITY,
- "Précision du rembobinage "
- )
+ MENU_ENUM_LABEL_VALUE_REWIND_BUFFER_SIZE,
+ "Mémoire tampon de rembobinage (Mo) "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_REWIND_BUFFER_SIZE,
- "Mémoire tampon de rembobinage (Mo) "
- )
+ MENU_ENUM_LABEL_VALUE_REWIND_BUFFER_SIZE_STEP,
+ "Précision d'ajustement du tampon de rembobinage (Mo) "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_REWIND_BUFFER_SIZE_STEP,
- "Précision d'ajustement du tampon de rembobinage (Mo) "
- )
+ MENU_ENUM_LABEL_VALUE_REWIND_SETTINGS,
+ "Rembobinage"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_REWIND_SETTINGS,
- "Rembobinage"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_SETTINGS,
+ "Réglages des cheats"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_SETTINGS,
- "Réglages des cheats"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_DETAILS_SETTINGS,
+ "Détails des cheats"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_DETAILS_SETTINGS,
- "Détails des cheats"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_SETTINGS,
+ "Démarrer ou reprendre la recherche de cheat"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_SETTINGS,
- "Démarrer ou reprendre la recherche de cheat"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_BROWSER_DIRECTORY,
+ "Navigateur de fichiers "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_BROWSER_DIRECTORY,
- "Navigateur de fichiers "
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_CONFIG_DIRECTORY,
+ "Fichiers de configuration "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_CONFIG_DIRECTORY,
- "Fichiers de configuration "
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_SHOW_START_SCREEN,
+ "Afficher l'écran de configuration initiale"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_SHOW_START_SCREEN,
- "Afficher l'écran de configuration initiale"
- )
+ MENU_ENUM_LABEL_VALUE_RIGHT_ANALOG,
+ "Analogique droite"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RIGHT_ANALOG,
- "Analogique droite"
- )
+ MENU_ENUM_LABEL_VALUE_ADD_TO_FAVORITES,
+ "Ajouter aux favoris"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ADD_TO_FAVORITES,
- "Ajouter aux favoris"
- )
+ MENU_ENUM_LABEL_VALUE_ADD_TO_FAVORITES_PLAYLIST,
+ "Ajouter aux favoris"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ADD_TO_FAVORITES_PLAYLIST,
- "Ajouter aux favoris"
- )
+ MENU_ENUM_LABEL_VALUE_DOWNLOAD_PL_ENTRY_THUMBNAILS,
+ "Télécharger les miniatures"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RESET_CORE_ASSOCIATION,
- "Réinitialiser l'association au cœur"
- )
+ MENU_ENUM_SUBLABEL_DOWNLOAD_PL_ENTRY_THUMBNAILS,
+ "Télécharge les miniatures des captures d'écran/pochettes/écrans titre pour le contenu actuel. Mets à jour toutes les miniatures existantes."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RUN,
- "Lancer"
- )
+ MENU_ENUM_LABEL_VALUE_SET_CORE_ASSOCIATION,
+ "Associer au cœur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RUN_MUSIC,
- "Lancer"
- )
+ MENU_ENUM_LABEL_VALUE_RESET_CORE_ASSOCIATION,
+ "Réinitialiser l'association au cœur"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_RUN,
+ "Lancer"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_RUN_MUSIC,
+ "Lancer"
+ )
#ifdef HAVE_LAKKA
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SAMBA_ENABLE,
- "SAMBA"
- )
+ MENU_ENUM_LABEL_VALUE_SAMBA_ENABLE,
+ "SAMBA"
+ )
#endif
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SAVEFILE_DIRECTORY,
- "Fichiers de sauvegarde "
- )
+ MENU_ENUM_LABEL_VALUE_SAVEFILE_DIRECTORY,
+ "Fichiers de sauvegarde "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SAVESTATE_AUTO_INDEX,
- "Sauvegardes instantanées incrémentales"
- )
+ MENU_ENUM_LABEL_VALUE_SAVESTATE_AUTO_INDEX,
+ "Sauvegardes instantanées incrémentales"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SAVESTATE_AUTO_LOAD,
- "Chargement auto des sauvegardes instantanées"
- )
+ MENU_ENUM_LABEL_VALUE_SAVESTATE_AUTO_LOAD,
+ "Chargement auto des sauvegardes instantanées"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SAVESTATE_AUTO_SAVE,
- "Sauvegardes instantanées automatiques"
- )
+ MENU_ENUM_LABEL_VALUE_SAVESTATE_AUTO_SAVE,
+ "Sauvegardes instantanées automatiques"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SAVESTATE_DIRECTORY,
- "Sauvegardes instantanées "
- )
+ MENU_ENUM_LABEL_VALUE_SAVESTATE_DIRECTORY,
+ "Sauvegardes instantanées "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SAVESTATE_THUMBNAIL_ENABLE,
- "Miniatures pour les sauvegardes instantanées"
- )
+ MENU_ENUM_LABEL_VALUE_SAVESTATE_THUMBNAIL_ENABLE,
+ "Miniatures pour les sauvegardes instantanées"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG,
- "Sauvegarder la configuration actuelle"
- )
+ MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG,
+ "Sauvegarder la configuration actuelle"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_CORE,
- "Sauvegarder le remplacement de configuration pour le cœur"
- )
+ MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_CORE,
+ "Sauvegarder le remplacement de configuration pour le cœur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_CONTENT_DIR,
- "Sauvegarder le remplacement de configuration pour le dossier"
- )
+ MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_CONTENT_DIR,
+ "Sauvegarder le remplacement de configuration pour le dossier"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_GAME,
- "Sauvegarder le remplacement de configuration pour le jeu"
- )
+ MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_GAME,
+ "Sauvegarder le remplacement de configuration pour le jeu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SAVE_NEW_CONFIG,
- "Sauvegarder une nouvelle configuration"
- )
+ MENU_ENUM_LABEL_VALUE_SAVE_NEW_CONFIG,
+ "Sauvegarder une nouvelle configuration"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SAVE_STATE,
- "Sauvegarde instantanée"
- )
+ MENU_ENUM_LABEL_VALUE_SAVE_STATE,
+ "Sauvegarde instantanée"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SAVING_SETTINGS,
- "Sauvegarde"
- )
+ MENU_ENUM_LABEL_VALUE_SAVING_SETTINGS,
+ "Sauvegarde"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SCAN_DIRECTORY,
- "Analyser un dossier"
- )
+ MENU_ENUM_LABEL_VALUE_SCAN_DIRECTORY,
+ "Analyser un dossier"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SCAN_FILE,
- "Analyser un fichier"
- )
+ MENU_ENUM_LABEL_VALUE_SCAN_FILE,
+ "Analyser un fichier"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SCAN_THIS_DIRECTORY,
- ""
- )
+ MENU_ENUM_LABEL_VALUE_SCAN_THIS_DIRECTORY,
+ ""
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SCREENSHOT_DIRECTORY,
- "Captures d'écran "
- )
+ MENU_ENUM_LABEL_VALUE_SCREENSHOT_DIRECTORY,
+ "Captures d'écran "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SCREEN_RESOLUTION,
- "Résolution de l'écran"
- )
+ MENU_ENUM_LABEL_VALUE_SCREEN_RESOLUTION,
+ "Résolution de l'écran"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SEARCH,
- "Recherche"
- )
+ MENU_ENUM_LABEL_VALUE_SEARCH,
+ "Recherche"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SECONDS,
- "secondes"
- )
+ MENU_ENUM_LABEL_VALUE_SECONDS,
+ "secondes"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SETTINGS,
- "Réglages"
- )
+ MENU_ENUM_LABEL_VALUE_SETTINGS,
+ "Réglages"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SETTINGS_TAB,
- "Réglages"
- )
+ MENU_ENUM_LABEL_VALUE_SETTINGS_TAB,
+ "Réglages"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SHADER,
- "Shader"
- )
+ MENU_ENUM_LABEL_VALUE_SHADER,
+ "Shader"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SHADER_APPLY_CHANGES,
- "Appliquer les changements"
- )
+ MENU_ENUM_LABEL_VALUE_SHADER_APPLY_CHANGES,
+ "Appliquer les changements"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SHADER_OPTIONS,
- "Shaders"
- )
+ MENU_ENUM_LABEL_VALUE_SHADER_OPTIONS,
+ "Shaders"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_RIBBON,
- "Ruban"
- )
+ MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_RIBBON,
+ "Ruban"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_RIBBON_SIMPLIFIED,
- "Ruban (simplifié)"
- )
+ MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_RIBBON_SIMPLIFIED,
+ "Ruban (simplifié)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_SIMPLE_SNOW,
- "Neige simple"
- )
+ MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_SIMPLE_SNOW,
+ "Neige simple"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_SNOW,
- "Neige"
- )
+ MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_SNOW,
+ "Neige"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SHOW_ADVANCED_SETTINGS,
- "Afficher les réglages avancés"
- )
+ MENU_ENUM_LABEL_VALUE_SHOW_ADVANCED_SETTINGS,
+ "Afficher les réglages avancés"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SHOW_HIDDEN_FILES,
- "Afficher les fichiers et dossiers cachés"
- )
+ MENU_ENUM_LABEL_VALUE_SHOW_HIDDEN_FILES,
+ "Afficher les fichiers et dossiers cachés"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SHUTDOWN,
- "Éteindre"
- )
+ MENU_ENUM_LABEL_VALUE_SHUTDOWN,
+ "Éteindre"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SLOWMOTION_RATIO,
- "Taux de ralentissement maximal "
- )
+ MENU_ENUM_LABEL_VALUE_SLOWMOTION_RATIO,
+ "Taux de ralentissement maximal "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RUN_AHEAD_ENABLED,
- "Exécuter en avance pour réduire la latence"
- )
+ MENU_ENUM_LABEL_VALUE_RUN_AHEAD_ENABLED,
+ "Exécuter en avance pour réduire la latence"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RUN_AHEAD_FRAMES,
- "Nombre d'images à éxecuter en avance"
- )
+ MENU_ENUM_LABEL_VALUE_RUN_AHEAD_FRAMES,
+ "Nombre d'images à éxecuter en avance"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RUN_AHEAD_SECONDARY_INSTANCE,
- "Utiliser une instance secondaire pour l'exécution en avance"
- )
+ MENU_ENUM_LABEL_VALUE_RUN_AHEAD_SECONDARY_INSTANCE,
+ "Utiliser une instance secondaire pour l'exécution en avance"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RUN_AHEAD_HIDE_WARNINGS,
- "Masquer les avertissements pour l'exécution en avance"
- )
+ MENU_ENUM_LABEL_VALUE_RUN_AHEAD_HIDE_WARNINGS,
+ "Masquer les avertissements pour l'exécution en avance"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SORT_SAVEFILES_ENABLE,
- "Classer les sauvegardes par dossier"
- )
+ MENU_ENUM_LABEL_VALUE_SORT_SAVEFILES_ENABLE,
+ "Classer les sauvegardes par dossier"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SORT_SAVESTATES_ENABLE,
- "Classer les sauvegardes instantanées par dossier"
- )
+ MENU_ENUM_LABEL_VALUE_SORT_SAVESTATES_ENABLE,
+ "Classer les sauvegardes instantanées par dossier"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SAVESTATES_IN_CONTENT_DIR_ENABLE,
- "Enregistrer les sauvegardes instantanées avec le contenu"
- )
+ MENU_ENUM_LABEL_VALUE_SAVESTATES_IN_CONTENT_DIR_ENABLE,
+ "Enregistrer les sauvegardes instantanées avec le contenu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SAVEFILES_IN_CONTENT_DIR_ENABLE,
- "Enregistrer les sauvegardes avec le contenu"
- )
+ MENU_ENUM_LABEL_VALUE_SAVEFILES_IN_CONTENT_DIR_ENABLE,
+ "Enregistrer les sauvegardes avec le contenu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEMFILES_IN_CONTENT_DIR_ENABLE,
- "Fichiers système avec le contenu"
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEMFILES_IN_CONTENT_DIR_ENABLE,
+ "Fichiers système avec le contenu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SCREENSHOTS_IN_CONTENT_DIR_ENABLE,
- "Enregistrer les captures d'écran avec le contenu"
- )
+ MENU_ENUM_LABEL_VALUE_SCREENSHOTS_IN_CONTENT_DIR_ENABLE,
+ "Enregistrer les captures d'écran avec le contenu"
+ )
#ifdef HAVE_LAKKA
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SSH_ENABLE,
- "SSH"
- )
+ MENU_ENUM_LABEL_VALUE_SSH_ENABLE,
+ "SSH"
+ )
#endif
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_START_CORE,
- "Démarrer le cœur"
- )
+ MENU_ENUM_LABEL_VALUE_START_CORE,
+ "Démarrer le cœur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_START_NET_RETROPAD,
- "Démarrer la RetroManette à distance"
- )
+ MENU_ENUM_LABEL_VALUE_START_NET_RETROPAD,
+ "Démarrer la RetroManette à distance"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_START_VIDEO_PROCESSOR,
- "Démarrer le processeur vidéo"
- )
+ MENU_ENUM_LABEL_VALUE_START_VIDEO_PROCESSOR,
+ "Démarrer le processeur vidéo"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_STATE_SLOT,
- "Emplacement de la sauvegarde instantanée"
- )
+ MENU_ENUM_LABEL_VALUE_STATE_SLOT,
+ "Emplacement de la sauvegarde instantanée"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_STATUS,
- "Statut"
- )
+ MENU_ENUM_LABEL_VALUE_STATUS,
+ "Statut"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_STDIN_CMD_ENABLE,
- "Commandes stdin"
- )
+ MENU_ENUM_LABEL_VALUE_STDIN_CMD_ENABLE,
+ "Commandes stdin"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SUPPORTED_CORES,
- "Cœurs suggérés"
- )
+ MENU_ENUM_LABEL_VALUE_SUPPORTED_CORES,
+ "Cœurs suggérés"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SUSPEND_SCREENSAVER_ENABLE,
- "Suspendre l'économiseur d'écran"
- )
+ MENU_ENUM_LABEL_VALUE_SUSPEND_SCREENSAVER_ENABLE,
+ "Suspendre l'économiseur d'écran"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_BGM_ENABLE,
- "Musique de fond système"
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_BGM_ENABLE,
+ "Musique de fond système"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_DIRECTORY,
- "Système/BIOS "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_DIRECTORY,
+ "Système/BIOS "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFORMATION,
- "Informations système"
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFORMATION,
+ "Informations système"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_7ZIP_SUPPORT,
- "Prise en charge de 7zip "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_7ZIP_SUPPORT,
+ "Prise en charge de 7zip "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_ALSA_SUPPORT,
- "Prise en charge d'ALSA "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_ALSA_SUPPORT,
+ "Prise en charge d'ALSA "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_BUILD_DATE,
- "Date de compilation "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_BUILD_DATE,
+ "Date de compilation "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_CG_SUPPORT,
- "Prise en charge de Cg "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_CG_SUPPORT,
+ "Prise en charge de Cg "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_COCOA_SUPPORT,
- "Prise en charge de Cocoa "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_COCOA_SUPPORT,
+ "Prise en charge de Cocoa "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_COMMAND_IFACE_SUPPORT,
- "Prise en charge de l'interface de commande "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_COMMAND_IFACE_SUPPORT,
+ "Prise en charge de l'interface de commande "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_CORETEXT_SUPPORT,
- "Prise en charge de CoreText "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_CORETEXT_SUPPORT,
+ "Prise en charge de CoreText "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_CPU_FEATURES,
- "Fonctionnalités du processeur "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_CPU_MODEL,
+ "Modèle du processeur "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_DISPLAY_METRIC_DPI,
- "Points/pouce de l'écran "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_CPU_FEATURES,
+ "Fonctionnalités du processeur "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_DISPLAY_METRIC_MM_HEIGHT,
- "Hauteur de l'écran (mm) "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_DISPLAY_METRIC_DPI,
+ "Points/pouce de l'écran "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_DISPLAY_METRIC_MM_WIDTH,
- "Largeur de l'écran (mm) "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_DISPLAY_METRIC_MM_HEIGHT,
+ "Hauteur de l'écran (mm) "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_DSOUND_SUPPORT,
- "Prise en charge de DirectSound "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_DISPLAY_METRIC_MM_WIDTH,
+ "Largeur de l'écran (mm) "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_WASAPI_SUPPORT,
- "Prise en charge de WASAPI "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_DSOUND_SUPPORT,
+ "Prise en charge de DirectSound "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_DYLIB_SUPPORT,
- "Prise en charge des bibliothèques dynamiques "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_WASAPI_SUPPORT,
+ "Prise en charge de WASAPI "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_DYNAMIC_SUPPORT,
- "Prise en charge du chargement dynamique des bibliothèques "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_DYLIB_SUPPORT,
+ "Prise en charge des bibliothèques dynamiques "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_EGL_SUPPORT,
- "Prise en charge d'EGL "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_DYNAMIC_SUPPORT,
+ "Prise en charge du chargement dynamique des bibliothèques "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_FBO_SUPPORT,
- "Prise en charge du rendu vers texture OpenGL/Direct3D (shaders multi-passages) "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_EGL_SUPPORT,
+ "Prise en charge d'EGL "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_FFMPEG_SUPPORT,
- "Prise en charge de FFmpeg "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_FBO_SUPPORT,
+ "Prise en charge du rendu vers texture OpenGL/Direct3D (shaders multi-passages) "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_FREETYPE_SUPPORT,
- "Prise en charge de FreeType "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_FFMPEG_SUPPORT,
+ "Prise en charge de FFmpeg "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_STB_TRUETYPE_SUPPORT,
- "Prise en charge du rendu des polices STB TrueType "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_FREETYPE_SUPPORT,
+ "Prise en charge de FreeType "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_FRONTEND_IDENTIFIER,
- "Identifiant du frontend "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_STB_TRUETYPE_SUPPORT,
+ "Prise en charge du rendu des polices STB TrueType "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_FRONTEND_NAME,
- "Nom du frontend "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_FRONTEND_IDENTIFIER,
+ "Identifiant du frontend "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_FRONTEND_OS,
- "Système d'exploitation du frontend"
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_FRONTEND_NAME,
+ "Nom du frontend "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_GIT_VERSION,
- "Version Git "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_FRONTEND_OS,
+ "Système d'exploitation du frontend"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_GLSL_SUPPORT,
- "Prise en charge de GLSL "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_GIT_VERSION,
+ "Version Git "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_HLSL_SUPPORT,
- "Prise en charge de HLSL "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_GLSL_SUPPORT,
+ "Prise en charge de GLSL "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_JACK_SUPPORT,
- "Prise en charge de JACK "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_HLSL_SUPPORT,
+ "Prise en charge de HLSL "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_KMS_SUPPORT,
- "Prise en charge de KMS/EGL "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_JACK_SUPPORT,
+ "Prise en charge de JACK "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_LAKKA_VERSION,
- "Version de Lakka "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_KMS_SUPPORT,
+ "Prise en charge de KMS/EGL "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_LIBRETRODB_SUPPORT,
- "Prise en charge de LibretroDB "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_LAKKA_VERSION,
+ "Version de Lakka "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_LIBUSB_SUPPORT,
- "Prise en charge de Libusb "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_LIBRETRODB_SUPPORT,
+ "Prise en charge de LibretroDB "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_NETPLAY_SUPPORT,
- "Prise en charge du jeu en réseau (peer-to-peer) "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_LIBUSB_SUPPORT,
+ "Prise en charge de Libusb "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_NETWORK_COMMAND_IFACE_SUPPORT,
- "Prise en charge de l'interface de commandes réseau "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_NETPLAY_SUPPORT,
+ "Prise en charge du jeu en réseau (peer-to-peer) "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_NETWORK_REMOTE_SUPPORT,
- "Prise en charge de la manette en réseau "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_NETWORK_COMMAND_IFACE_SUPPORT,
+ "Prise en charge de l'interface de commandes réseau "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_OPENAL_SUPPORT,
- "Prise en charge d'OpenAL "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_NETWORK_REMOTE_SUPPORT,
+ "Prise en charge de la manette en réseau "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_OPENGLES_SUPPORT,
- "Prise en charge d'OpenGL ES "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_OPENAL_SUPPORT,
+ "Prise en charge d'OpenAL "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_OPENGL_SUPPORT,
- "Prise en charge d'OpenGL "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_OPENGLES_SUPPORT,
+ "Prise en charge d'OpenGL ES "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_OPENSL_SUPPORT,
- "Prise en charge d'OpenSL "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_OPENGL_SUPPORT,
+ "Prise en charge d'OpenGL "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_OPENVG_SUPPORT,
- "Prise en charge d'OpenVG "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_OPENSL_SUPPORT,
+ "Prise en charge d'OpenSL "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_OSS_SUPPORT,
- "Prise en charge d'OSS "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_OPENVG_SUPPORT,
+ "Prise en charge d'OpenVG "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_OVERLAY_SUPPORT,
- "Prise en charge des surimpressions "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_OSS_SUPPORT,
+ "Prise en charge d'OSS "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE,
- "Alimentation "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_OVERLAY_SUPPORT,
+ "Prise en charge des surimpressions "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE_CHARGED,
- "Chargé"
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE,
+ "Alimentation "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE_CHARGING,
- "En charge"
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE_CHARGED,
+ "Chargé"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE_DISCHARGING,
- "Non chargé"
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE_CHARGING,
+ "En charge"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE_NO_SOURCE,
- "Non alimenté"
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE_DISCHARGING,
+ "Non chargé"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_PULSEAUDIO_SUPPORT,
- "Prise en charge de PulseAudio "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE_NO_SOURCE,
+ "Non alimenté"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_PYTHON_SUPPORT,
- "Prise en charge de Python (scripts dans les shaders) "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_PULSEAUDIO_SUPPORT,
+ "Prise en charge de PulseAudio "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_RBMP_SUPPORT,
- "Prise en charge du format BMP (RBMP) "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_PYTHON_SUPPORT,
+ "Prise en charge de Python (scripts dans les shaders) "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_RETRORATING_LEVEL,
- "Niveau de RetroClassification"
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_RBMP_SUPPORT,
+ "Prise en charge du format BMP (RBMP) "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_RJPEG_SUPPORT,
- "Prise en charge du format JPEG (RJPEG) "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_RETRORATING_LEVEL,
+ "Niveau de RetroClassification"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_ROARAUDIO_SUPPORT,
- "Prise en charge de RoarAudio "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_RJPEG_SUPPORT,
+ "Prise en charge du format JPEG (RJPEG) "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_RPNG_SUPPORT,
- "Prise en charge du format PNG (RPNG) "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_ROARAUDIO_SUPPORT,
+ "Prise en charge de RoarAudio "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_RSOUND_SUPPORT,
- "Prise en charge de RSound "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_RPNG_SUPPORT,
+ "Prise en charge du format PNG (RPNG) "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_RTGA_SUPPORT,
- "Prise en charge du format TGA (RTGA) "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_RSOUND_SUPPORT,
+ "Prise en charge de RSound "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_SDL2_SUPPORT,
- "Prise en charge de SDL2 "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_RTGA_SUPPORT,
+ "Prise en charge du format TGA (RTGA) "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_SDL_IMAGE_SUPPORT,
- "Prise en charge de SDL image "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_SDL2_SUPPORT,
+ "Prise en charge de SDL2 "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_SDL_SUPPORT,
- "Prise en charge de SDL1.2 "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_SDL_IMAGE_SUPPORT,
+ "Prise en charge de SDL image "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_SLANG_SUPPORT,
- "Prise en charge de Slang "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_SDL_SUPPORT,
+ "Prise en charge de SDL1.2 "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_THREADING_SUPPORT,
- "Prise en charge de plusieurs fils d'exécution "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_SLANG_SUPPORT,
+ "Prise en charge de Slang "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_UDEV_SUPPORT,
- "Prise en charge de Udev "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_THREADING_SUPPORT,
+ "Prise en charge de plusieurs fils d'exécution "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_V4L2_SUPPORT,
- "Prise en charge de Video4Linux2 "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_UDEV_SUPPORT,
+ "Prise en charge de Udev "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_VIDEO_CONTEXT_DRIVER,
- "Pilote de contexte vidéo "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_V4L2_SUPPORT,
+ "Prise en charge de Video4Linux2 "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_VULKAN_SUPPORT,
- "Prise en charge de Vulkan "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_VIDEO_CONTEXT_DRIVER,
+ "Pilote de contexte vidéo "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_METAL_SUPPORT,
- "Prise en charge de Metal "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_VULKAN_SUPPORT,
+ "Prise en charge de Vulkan "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_WAYLAND_SUPPORT,
- "Prise en charge de Wayland "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_METAL_SUPPORT,
+ "Prise en charge de Metal "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_X11_SUPPORT,
- "Prise en charge de X11 "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_WAYLAND_SUPPORT,
+ "Prise en charge de Wayland "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_XAUDIO2_SUPPORT,
- "Prise en charge de XAudio2 "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_X11_SUPPORT,
+ "Prise en charge de X11 "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_XVIDEO_SUPPORT,
- "Prise en charge de XVideo "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_XAUDIO2_SUPPORT,
+ "Prise en charge de XAudio2 "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_ZLIB_SUPPORT,
- "Prise en charge de Zlib "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_XVIDEO_SUPPORT,
+ "Prise en charge de XVideo "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TAKE_SCREENSHOT,
- "Capturer l'écran"
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_ZLIB_SUPPORT,
+ "Prise en charge de Zlib "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_THREADED_DATA_RUNLOOP_ENABLE,
- "Tâches sur plusieurs fils d'exécution"
- )
+ MENU_ENUM_LABEL_VALUE_TAKE_SCREENSHOT,
+ "Capturer l'écran"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_THUMBNAILS,
- "Miniatures"
- )
+ MENU_ENUM_LABEL_VALUE_THREADED_DATA_RUNLOOP_ENABLE,
+ "Tâches sur plusieurs fils d'exécution"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_THUMBNAILS_RGUI,
- "Miniature du haut"
- )
+ MENU_ENUM_LABEL_VALUE_THUMBNAILS,
+ "Miniatures"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LEFT_THUMBNAILS,
- "Miniature de gauche"
- )
+ MENU_ENUM_LABEL_VALUE_THUMBNAILS_RGUI,
+ "Miniature du haut"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LEFT_THUMBNAILS_RGUI,
- "Miniature du bas"
- )
+ MENU_ENUM_LABEL_VALUE_LEFT_THUMBNAILS,
+ "Miniature de gauche"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LEFT_THUMBNAILS_OZONE,
- "Miniature secondaire"
- )
+ MENU_ENUM_LABEL_VALUE_LEFT_THUMBNAILS_RGUI,
+ "Miniature du bas"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_VERTICAL_THUMBNAILS,
- "Disposition des miniatures à la verticale"
- )
+ MENU_ENUM_LABEL_VALUE_LEFT_THUMBNAILS_OZONE,
+ "Miniature secondaire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_RGUI_INLINE_THUMBNAILS,
- "Afficher les miniatures dans les listes de lecture"
- )
+ MENU_ENUM_LABEL_VALUE_XMB_VERTICAL_THUMBNAILS,
+ "Disposition des miniatures à la verticale"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_RGUI_INLINE_THUMBNAILS,
- "Activer l'affichage des miniatures réduites intégrées lors de l'affichage des listes de lecture. Lorsque cette option est désactivée, la 'Miniature du haut' peut toujours être affichée en plein écran en appuyant sur RetroManette Y."
- )
+ MENU_ENUM_LABEL_VALUE_MENU_XMB_THUMBNAIL_SCALE_FACTOR,
+ "Facteur de mise à l'échelle des miniatures"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_RGUI_SWAP_THUMBNAILS,
- "Échanger les miniatures"
- )
+ MENU_ENUM_SUBLABEL_MENU_XMB_THUMBNAIL_SCALE_FACTOR,
+ "Réduit la taille d'affichage des miniatures en ajustant la largeur maximum autorisée."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_RGUI_SWAP_THUMBNAILS,
- "Échange les positions à l'écran de 'Miniature du haut' et 'Miniature du bas'."
- )
+ MENU_ENUM_LABEL_VALUE_MENU_THUMBNAIL_UPSCALE_THRESHOLD,
+ "Seuil de l'agrandissement des miniatures"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_RGUI_THUMBNAIL_DELAY,
- "Retarder l'affichage de la miniature (ms)"
- )
+ MENU_ENUM_SUBLABEL_MENU_THUMBNAIL_UPSCALE_THRESHOLD,
+ "Agrandit automatiquement les miniatures à une largeur/hauteur inférieure à la valeur spécifiée. Améliore la qualité de l'image. A un impact modéré sur les performances."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_RGUI_THUMBNAIL_DELAY,
- "Applique un délai de temps entre la sélection d'une entrée de liste de lecture et le chargement de sa miniature associée. Régler sur une valeur d'au moins 256 ms permet la navigation rapide sans à-coups même sur les appareils les plus lents."
- )
+ MENU_ENUM_LABEL_VALUE_MENU_RGUI_INLINE_THUMBNAILS,
+ "Afficher les miniatures dans les listes de lecture"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_RGUI_THUMBNAIL_DOWNSCALER,
- "Méthode de réduction des miniatures"
- )
+ MENU_ENUM_SUBLABEL_MENU_RGUI_INLINE_THUMBNAILS,
+ "Réduit les miniatures intégrées lors de l'affichage des listes de lecture. Lorsque cette option est désactivée, la 'Miniature du haut' peut toujours être affichée en plein écran en appuyant sur RetroManette Y."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_RGUI_THUMBNAIL_DOWNSCALER,
- "Méthode de rééchantillonnage utilisée lors de la réduction de grandes miniatures pour les adapter à l'écran."
- )
+ MENU_ENUM_LABEL_VALUE_MENU_RGUI_SWAP_THUMBNAILS,
+ "Échanger les miniatures"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_THUMB_SCALE_POINT,
- "Au plus proche (Rapide)"
- )
+ MENU_ENUM_SUBLABEL_MENU_RGUI_SWAP_THUMBNAILS,
+ "Échange les positions à l'écran de 'Miniature du haut' et 'Miniature du bas'."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_THUMB_SCALE_BILINEAR,
- "Bilinéaire"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_RGUI_THUMBNAIL_DELAY,
+ "Retarder l'affichage de la miniature (ms)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_THUMB_SCALE_SINC,
- "Sinc/Lanczos3 (Lent)"
- )
+ MENU_ENUM_SUBLABEL_MENU_RGUI_THUMBNAIL_DELAY,
+ "Applique un délai de temps entre la sélection d'une entrée de liste de lecture et le chargement de sa miniature associée. Régler sur une valeur d'au moins 256 ms permet la navigation rapide sans à-coups même sur les appareils les plus lents."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_UPSCALE_NONE,
- "Aucune"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_RGUI_THUMBNAIL_DOWNSCALER,
+ "Méthode de réduction des miniatures"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_UPSCALE_AUTO,
- "Auto"
- )
+ MENU_ENUM_SUBLABEL_MENU_RGUI_THUMBNAIL_DOWNSCALER,
+ "Méthode de rééchantillonnage utilisée lors de la réduction de grandes miniatures pour les adapter à l'écran."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_UPSCALE_X2,
- "x2"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_THUMB_SCALE_POINT,
+ "Au plus proche (Rapide)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_UPSCALE_X3,
- "x3"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_THUMB_SCALE_BILINEAR,
+ "Bilinéaire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_UPSCALE_X4,
- "x4"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_THUMB_SCALE_SINC,
+ "Sinc/Lanczos3 (Lent)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_UPSCALE_X5,
- "x5"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_UPSCALE_NONE,
+ "Aucune"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_UPSCALE_X6,
- "x6"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_UPSCALE_AUTO,
+ "Auto"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_UPSCALE_X7,
- "x7"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_UPSCALE_X2,
+ "x2"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_UPSCALE_X8,
- "x8"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_UPSCALE_X3,
+ "x3"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_UPSCALE_X9,
- "x9"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_UPSCALE_X4,
+ "x4"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_4_3,
- "4:3"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_UPSCALE_X5,
+ "x5"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_9,
- "16:9"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_UPSCALE_X6,
+ "x6"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_9_CENTRE,
- "16:9 (Centré)"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_UPSCALE_X7,
+ "x7"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10,
- "16:10"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_UPSCALE_X8,
+ "x8"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10_CENTRE,
- "16:10 (Centré)"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_UPSCALE_X9,
+ "x9"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_NONE,
- "Désactivé"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_4_3,
+ "4:3"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_FIT_SCREEN,
- "Adapter à l'écran"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_9,
+ "16:9"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_INTEGER,
- "Échelle à l'entier"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_9_CENTRE,
+ "16:9 (Centré)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_THUMBNAILS_DIRECTORY,
- "Miniatures "
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10,
+ "16:10"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_THUMBNAILS_UPDATER_LIST,
- "Mise à jour des miniatures"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_16_10_CENTRE,
+ "16:10 (Centré)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_BOXARTS,
- "Jaquettes"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_NONE,
+ "Désactivé"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_SCREENSHOTS,
- "Captures d'écran"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_FIT_SCREEN,
+ "Adapter à l'écran"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_TITLE_SCREENS,
- "Écrans titres"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_ASPECT_RATIO_LOCK_INTEGER,
+ "Échelle à l'entier"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_ENABLE,
- "Afficher la date/l'heure"
- )
+ MENU_ENUM_LABEL_VALUE_THUMBNAILS_DIRECTORY,
+ "Miniatures "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE,
- "Style d'affichage de la date/l'heure "
- )
+ MENU_ENUM_LABEL_VALUE_THUMBNAILS_UPDATER_LIST,
+ "Mise à jour des miniatures"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_TIMEDATE_STYLE,
- "Change le style dans lequel la date et/ou l'heure sont affichées dans le menu."
- )
+ MENU_ENUM_SUBLABEL_THUMBNAILS_UPDATER_LIST,
+ "Télécharge le pack de miniatures complet pour le système sélectionné."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HMS,
- "AAAA-MM-JJ HH:MM:SS"
- )
+ MENU_ENUM_LABEL_VALUE_PL_THUMBNAILS_UPDATER_LIST,
+ "Mise à jour des miniatures pour la liste de lecture"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HM,
- "AAAA-MM-JJ HH:MM"
- )
+ MENU_ENUM_SUBLABEL_PL_THUMBNAILS_UPDATER_LIST,
+ "Télécharge les miniatures individuelles pour la liste de lecture sélectionnée."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MDYYYY,
- "MM-JJ-AAAA HH:MM"
- )
+ MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_BOXARTS,
+ "Jaquettes"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HMS,
- "HH:MM:SS"
- )
+ MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_SCREENSHOTS,
+ "Captures d'écran"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HM,
- "HH:MM"
- )
+ MENU_ENUM_LABEL_VALUE_THUMBNAIL_MODE_TITLE_SCREENS,
+ "Écrans titres"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_DM_HM,
- "JJ/MM HH:MM"
- )
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_ENABLE,
+ "Afficher la date/l'heure"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MD_HM,
- "MM/JJ HH:MM"
- )
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE,
+ "Style d'affichage de la date/l'heure "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HMS_AM_PM,
- "HH:MM:SS (AM/PM)"
- )
+ MENU_ENUM_SUBLABEL_TIMEDATE_STYLE,
+ "Change le style dans lequel la date et/ou l'heure sont affichées dans le menu."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_TICKER_TYPE,
- "Animation du défilement de texte"
- )
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HMS,
+ "AAAA-MM-JJ HH:MM:SS"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_TICKER_TYPE,
- "Selectionner la méthode de défilement horizontal utilisée pour l'affichage de longues chaînes de texte dans le menu."
- )
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HM,
+ "AAAA-MM-JJ HH:MM"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_TICKER_TYPE_BOUNCE,
- "Faire rebondir de gauche à droite"
- )
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MDYYYY,
+ "MM-JJ-AAAA HH:MM"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_TICKER_TYPE_LOOP,
- "Faire défiler vers la gauche"
- )
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HMS,
+ "HH:MM:SS"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_TICKER_SPEED,
- "Vitesse de défilement du texte "
- )
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HM,
+ "HH:MM"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_TICKER_SPEED,
- "Vitesse de l'animation lors de l'affichage de longues chaînes de texte dans le menu."
- )
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_DM_HM,
+ "JJ/MM HH:MM"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME,
- "Thème de couleur du menu"
- )
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MD_HM,
+ "MM/JJ HH:MM"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_RGUI_MENU_COLOR_THEME,
- "Selectionner un thème de couleur différent. Choisir 'Personnalisé' permet l'utilisation de fichiers de préréglages de thème du menu."
- )
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HMS_AM_PM,
+ "AAAA-MM-JJ HH:MM:SS (AM/PM)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_THEME_PRESET,
- "Préréglages de thème du menu personnalisés"
- )
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HM_AM_PM,
+ "AAAA-MM-JJ HH:MM (AM/PM)"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_RGUI_MENU_THEME_PRESET,
- "Selectionner un fichier de préréglages de thème du menu depuis le navigateur de fichiers."
- )
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MDYYYY_AM_PM,
+ "MM-JJ-AAAA HH:MM (AM/PM)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_CUSTOM,
- "Personnalisé"
- )
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HMS_AM_PM,
+ "HH:MM:SS (AM/PM)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_CLASSIC_RED,
- "Rouge classique"
- )
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HM_AM_PM,
+ "HH:MM (AM/PM)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_CLASSIC_ORANGE,
- "Orange classique"
- )
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_DM_HM_AM_PM,
+ "JJ/MM HH:MM (AM/PM)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_CLASSIC_YELLOW,
- "Jaune classique"
- )
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MD_HM_AM_PM,
+ "MM/JJ HH:MM (AM/PM)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_CLASSIC_GREEN,
- "Vert classique"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_TICKER_TYPE,
+ "Animation du défilement de texte"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_CLASSIC_BLUE,
- "Bleu classique"
- )
+ MENU_ENUM_SUBLABEL_MENU_TICKER_TYPE,
+ "Selectionne la méthode de défilement horizontal utilisée pour l'affichage du texte trop long dans le menu."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_CLASSIC_VIOLET,
- "Violet classique"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_TICKER_TYPE_BOUNCE,
+ "Faire rebondir de gauche à droite"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_CLASSIC_GREY,
- "Gris classique"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_TICKER_TYPE_LOOP,
+ "Faire défiler vers la gauche"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_LEGACY_RED,
- "Rouge hérité"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_TICKER_SPEED,
+ "Vitesse de défilement du texte "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_DARK_PURPLE,
- "Violet sombre"
- )
+ MENU_ENUM_SUBLABEL_MENU_TICKER_SPEED,
+ "Vitesse de l'animation lors de l'affichage du texte trop long dans le menu."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_MIDNIGHT_BLUE,
- "Bleu nuit"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_TICKER_SMOOTH,
+ "Animation du défilement de texte"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_GOLDEN,
- "Doré"
- )
+ MENU_ENUM_SUBLABEL_MENU_TICKER_SMOOTH,
+ "Utiliser une animation lisse lors de l'affichage du texte trop long dans le menu. A un faible impact sur les performances."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_ELECTRIC_BLUE,
- "Bleu électrique"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME,
+ "Thème de couleur du menu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_APPLE_GREEN,
- "Vert pomme"
- )
+ MENU_ENUM_SUBLABEL_RGUI_MENU_COLOR_THEME,
+ "Selectionner un thème de couleur différent. Choisir 'Personnalisé' permet l'utilisation de fichiers de préréglages de thème du menu."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_VOLCANIC_RED,
- "Rouge volcanique"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_THEME_PRESET,
+ "Préréglages de thème du menu personnalisés"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_LAGOON,
- "Lagon"
- )
+ MENU_ENUM_SUBLABEL_RGUI_MENU_THEME_PRESET,
+ "Selectionner un fichier de préréglages de thème du menu depuis le navigateur de fichiers."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_BROGRAMMER,
- "Brogrammeur"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_CUSTOM,
+ "Personnalisé"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_DRACULA,
- "Dracula"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_CLASSIC_RED,
+ "Rouge classique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_FAIRYFLOSS,
- "Soie de fée"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_CLASSIC_ORANGE,
+ "Orange classique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_FLATUI,
- "Minimaliste"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_CLASSIC_YELLOW,
+ "Jaune classique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_GRUVBOX_DARK,
- "Gruvbox sombre"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_CLASSIC_GREEN,
+ "Vert classique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_GRUVBOX_LIGHT,
- "Gruvbox claire"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_CLASSIC_BLUE,
+ "Bleu classique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_HACKING_THE_KERNEL,
- "Pirater le kernel"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_CLASSIC_VIOLET,
+ "Violet classique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_NORD,
- "Nord"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_CLASSIC_GREY,
+ "Gris classique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_NOVA,
- "Nova"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_LEGACY_RED,
+ "Rouge hérité"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_ONE_DARK,
- "Un sombre"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_DARK_PURPLE,
+ "Violet sombre"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_PALENIGHT,
- "Nuit pâle"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_MIDNIGHT_BLUE,
+ "Bleu nuit"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_SOLARIZED_DARK,
- "Solarisé sombre"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_GOLDEN,
+ "Doré"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_SOLARIZED_LIGHT,
- "Solarisé clair"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_ELECTRIC_BLUE,
+ "Bleu électrique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_TANGO_DARK,
- "Tango sombre"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_APPLE_GREEN,
+ "Vert pomme"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_TANGO_LIGHT,
- "Tango clair"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_VOLCANIC_RED,
+ "Rouge volcanique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_ZENBURN,
- "Zenburn"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_LAGOON,
+ "Lagon"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_ANTI_ZENBURN,
- "Anti-Zenburn"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_BROGRAMMER,
+ "Brogrammeur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TRUE,
- "Vrai"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_DRACULA,
+ "Dracula"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_UI_COMPANION_ENABLE,
- "Interface de bureau"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_FAIRYFLOSS,
+ "Soie de fée"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_UI_COMPANION_START_ON_BOOT,
- "Lancer l'interface de bureau au démarrage"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_FLATUI,
+ "Minimaliste"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_UI_COMPANION_TOGGLE,
- "Afficher l'interface de bureau au démarrage"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_GRUVBOX_DARK,
+ "Gruvbox sombre"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DESKTOP_MENU_ENABLE,
- "Interface de bureau (Redémarrer)"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_GRUVBOX_LIGHT,
+ "Gruvbox claire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_UI_MENUBAR_ENABLE,
- "Barre de menu"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_HACKING_THE_KERNEL,
+ "Pirater le kernel"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_UNABLE_TO_READ_COMPRESSED_FILE,
- "Impossible de lire l'archive."
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_NORD,
+ "Nord"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_UNDO_LOAD_STATE,
- "Annuler le chargement de sauvegarde instantanée"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_NOVA,
+ "Nova"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_UNDO_SAVE_STATE,
- "Annuler la sauvegarde instantanée"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_ONE_DARK,
+ "One Dark"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_UNKNOWN,
- "Inconnu"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_PALENIGHT,
+ "Palenight"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_UPDATER_SETTINGS,
- "Mise à jour"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_SOLARIZED_DARK,
+ "Solarisé sombre"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_UPDATE_ASSETS,
- "Mettre à jour les assets"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_SOLARIZED_LIGHT,
+ "Solarisé clair"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_UPDATE_AUTOCONFIG_PROFILES,
- "Mettre à jour les profils de manettes"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_TANGO_DARK,
+ "Tango sombre"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_UPDATE_CG_SHADERS,
- "Mettre à jour les shaders CG"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_TANGO_LIGHT,
+ "Tango clair"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_UPDATE_CHEATS,
- "Mettre à jour les cheats"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_ZENBURN,
+ "Zenburn"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_UPDATE_CORE_INFO_FILES,
- "Mettre à jour les fichiers d'information de cœurs"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_ANTI_ZENBURN,
+ "Anti-Zenburn"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_UPDATE_DATABASES,
- "Mettre à jour les bases de données"
- )
+ MENU_ENUM_LABEL_VALUE_TRUE,
+ "Vrai"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_UPDATE_GLSL_SHADERS,
- "Mettre à jour les shaders GLSL"
- )
+ MENU_ENUM_LABEL_VALUE_UI_COMPANION_ENABLE,
+ "Interface de bureau"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_UPDATE_LAKKA,
- "Mettre à jour Lakka"
- )
+ MENU_ENUM_LABEL_VALUE_UI_COMPANION_START_ON_BOOT,
+ "Lancer l'interface de bureau au démarrage"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_UPDATE_OVERLAYS,
- "Mettre à jour les surimpressions"
- )
+ MENU_ENUM_LABEL_VALUE_UI_COMPANION_TOGGLE,
+ "Afficher l'interface de bureau au démarrage"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_UPDATE_SLANG_SHADERS,
- "Mettre à jour les shaders Slang"
- )
+ MENU_ENUM_LABEL_VALUE_DESKTOP_MENU_ENABLE,
+ "Interface de bureau (Redémarrer)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_USER,
- "Utilisateur"
- )
+ MENU_ENUM_LABEL_VALUE_UI_MENUBAR_ENABLE,
+ "Barre de menu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_KEYBOARD,
- "Clavier"
- )
+ MENU_ENUM_LABEL_VALUE_UNABLE_TO_READ_COMPRESSED_FILE,
+ "Impossible de lire l'archive."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_USER_INTERFACE_SETTINGS,
- "Interface utilisateur"
- )
+ MENU_ENUM_LABEL_VALUE_UNDO_LOAD_STATE,
+ "Annuler le chargement de sauvegarde instantanée"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_USER_LANGUAGE,
- "Langue "
- )
+ MENU_ENUM_LABEL_VALUE_UNDO_SAVE_STATE,
+ "Annuler la sauvegarde instantanée"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_USER_SETTINGS,
- "Utilisateur"
- )
+ MENU_ENUM_LABEL_VALUE_UNKNOWN,
+ "Inconnu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_USE_BUILTIN_IMAGE_VIEWER,
- "Utiliser le lecteur d'image intégré"
- )
+ MENU_ENUM_LABEL_VALUE_UPDATER_SETTINGS,
+ "Mise à jour"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_USE_BUILTIN_PLAYER,
- "Utiliser le lecteur média intégré"
- )
+ MENU_ENUM_LABEL_VALUE_UPDATE_ASSETS,
+ "Mettre à jour les assets"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_USE_THIS_DIRECTORY,
- ""
- )
+ MENU_ENUM_LABEL_VALUE_UPDATE_AUTOCONFIG_PROFILES,
+ "Mettre à jour les profils de manettes"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_ALLOW_ROTATE,
- "Autoriser la rotation"
- )
+ MENU_ENUM_LABEL_VALUE_UPDATE_CG_SHADERS,
+ "Mettre à jour les shaders CG"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_ASPECT_RATIO,
- "Configurer le rapport d'aspect"
- )
+ MENU_ENUM_LABEL_VALUE_UPDATE_CHEATS,
+ "Mettre à jour les cheats"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_ASPECT_RATIO_AUTO,
- "Rapport d'aspect automatique"
- )
+ MENU_ENUM_LABEL_VALUE_UPDATE_CORE_INFO_FILES,
+ "Mettre à jour les fichiers d'information de cœurs"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_ASPECT_RATIO_INDEX,
- "Rapport d'aspect"
- )
+ MENU_ENUM_LABEL_VALUE_UPDATE_DATABASES,
+ "Mettre à jour les bases de données"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_BLACK_FRAME_INSERTION,
- "Insertion d'images noires"
- )
+ MENU_ENUM_LABEL_VALUE_UPDATE_GLSL_SHADERS,
+ "Mettre à jour les shaders GLSL"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_CROP_OVERSCAN,
- "Recadrer le surbalayage (Recharger)"
- )
+ MENU_ENUM_LABEL_VALUE_UPDATE_LAKKA,
+ "Mettre à jour Lakka"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_DISABLE_COMPOSITION,
- "Désactiver la composition de bureau"
- )
+ MENU_ENUM_LABEL_VALUE_UPDATE_OVERLAYS,
+ "Mettre à jour les surimpressions"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_UPDATE_SLANG_SHADERS,
+ "Mettre à jour les shaders Slang"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_USER,
+ "Utilisateur"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_KEYBOARD,
+ "Clavier"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_USER_INTERFACE_SETTINGS,
+ "Interface utilisateur"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_USER_LANGUAGE,
+ "Langue "
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_USER_SETTINGS,
+ "Utilisateur"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_USE_BUILTIN_IMAGE_VIEWER,
+ "Utiliser le lecteur d'images intégré"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_USE_BUILTIN_PLAYER,
+ "Utiliser le lecteur média intégré"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_USE_THIS_DIRECTORY,
+ ""
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_VIDEO_ALLOW_ROTATE,
+ "Autoriser la rotation"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_VIDEO_ASPECT_RATIO,
+ "Configurer le rapport d'aspect"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_VIDEO_ASPECT_RATIO_AUTO,
+ "Rapport d'aspect automatique"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_VIDEO_ASPECT_RATIO_INDEX,
+ "Rapport d'aspect"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_VIDEO_BLACK_FRAME_INSERTION,
+ "Insertion d'images noires"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_VIDEO_CROP_OVERSCAN,
+ "Recadrer le surbalayage (Recharger)"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_VIDEO_DISABLE_COMPOSITION,
+ "Désactiver la composition de bureau"
+ )
#if defined(_3DS)
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_3DS_LCD_BOTTOM,
- "Écran inférieur 3DS"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_3DS_LCD_BOTTOM,
+ "Écran inférieur 3DS"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_3DS_LCD_BOTTOM,
- "Permet l'affichage d'informations d'état sur l'écran inférieur. Désactiver pour augmenter la durée de vie de la batterie et améliorer les performances."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_3DS_LCD_BOTTOM,
+ "Permet l'affichage d'informations d'état sur l'écran inférieur. Désactiver pour augmenter la durée de vie de la batterie et améliorer les performances."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_3DS_DISPLAY_MODE,
- "Mode d'affichage 3DS"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_3DS_DISPLAY_MODE,
+ "Mode d'affichage 3DS"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_3DS_DISPLAY_MODE,
- "Sélectionne le mode d'affichage entre les modes 2D et 3D. En mode '3D', les pixels sont carrés et un effet de profondeur est appliqué lors de l'affichage du menu rapide. Le mode '2D' offre la meilleure performance."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_3DS_DISPLAY_MODE,
+ "Sélectionne le mode d'affichage entre les modes 2D et 3D. En mode '3D', les pixels sont carrés et un effet de profondeur est appliqué lors de l'affichage du menu rapide. Le mode '2D' offre la meilleure performance."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CTR_VIDEO_MODE_3D,
- "3D"
- )
+ MENU_ENUM_LABEL_VALUE_CTR_VIDEO_MODE_3D,
+ "3D"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CTR_VIDEO_MODE_2D,
- "2D"
- )
+ MENU_ENUM_LABEL_VALUE_CTR_VIDEO_MODE_2D,
+ "2D"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CTR_VIDEO_MODE_2D_400x240,
- "2D (Effet grille de pixels)"
- )
+ MENU_ENUM_LABEL_VALUE_CTR_VIDEO_MODE_2D_400x240,
+ "2D (Effet grille de pixels)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CTR_VIDEO_MODE_2D_800x240,
- "2D (Haute résolution)"
- )
+ MENU_ENUM_LABEL_VALUE_CTR_VIDEO_MODE_2D_800x240,
+ "2D (Haute résolution)"
+ )
#endif
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_DRIVER,
- "Vidéo "
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_DRIVER,
+ "Vidéo "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_FILTER,
- "Filtre vidéo "
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_FILTER,
+ "Filtre vidéo "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_FILTER_DIR,
- "Filtres vidéo "
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_FILTER_DIR,
+ "Filtres vidéo "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_FILTER_FLICKER,
- "Filtre anti-scintillement"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_FILTER_FLICKER,
+ "Filtre anti-scintillement"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_FONT_ENABLE,
- "Notifications à l'écran"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_FONT_ENABLE,
+ "Notifications à l'écran"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_FONT_PATH,
- "Police des notifications "
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_FONT_PATH,
+ "Police des notifications "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_FONT_SIZE,
- "Taille des notifications "
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_FONT_SIZE,
+ "Taille des notifications "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_FORCE_ASPECT,
- "Forcer le rapport d'aspect"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_FORCE_ASPECT,
+ "Forcer le rapport d'aspect"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_FORCE_SRGB_DISABLE,
- "Forcer la désactivation du mode sRGB FBO"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_FORCE_SRGB_DISABLE,
+ "Forcer la désactivation du mode sRGB FBO"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_FRAME_DELAY,
- "Retarder les images "
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_FRAME_DELAY,
+ "Retarder les images "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_FULLSCREEN,
- "Démarrer en mode plein écran"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_DELAY,
+ "Retarder le chargement des shaders"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_GAMMA,
- "Gamma vidéo"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_FULLSCREEN,
+ "Démarrer en mode plein écran"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_GPU_RECORD,
- "Utiliser le processeur graphique pour l'enregistrement"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_GAMMA,
+ "Gamma vidéo"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_GPU_SCREENSHOT,
- "Captures d'écran par le processeur graphique"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_GPU_RECORD,
+ "Utiliser le processeur graphique pour l'enregistrement"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_HARD_SYNC,
- "Synchronisation matérielle du processeur graphique"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_GPU_SCREENSHOT,
+ "Utiliser le processeur graphique pour les captures d'écran"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_HARD_SYNC_FRAMES,
- "Images de synchronisation matérielle du processeur graphique"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_HARD_SYNC,
+ "Synchronisation matérielle du processeur graphique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_MAX_SWAPCHAIN_IMAGES,
- "Nombre d'images max en mémoire tampon "
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_HARD_SYNC_FRAMES,
+ "Images de synchronisation matérielle du processeur graphique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_POS_X,
- "Position X des notifications "
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_MAX_SWAPCHAIN_IMAGES,
+ "Nombre d'images max en mémoire tampon "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_POS_Y,
- "Position Y des notifications "
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_POS_X,
+ "Position X des notifications "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_MONITOR_INDEX,
- "Numéro du moniteur "
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_POS_Y,
+ "Position Y des notifications "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_POST_FILTER_RECORD,
- "Utiliser les filtres vidéo lors de l'enregistrement"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_MONITOR_INDEX,
+ "Numéro du moniteur "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_REFRESH_RATE,
- "Fréquence de rafraîchissement vertical"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_POST_FILTER_RECORD,
+ "Utiliser les filtres vidéo lors de l'enregistrement"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_REFRESH_RATE_AUTO,
- "Fréquence estimée de l'écran"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_REFRESH_RATE,
+ "Fréquence de rafraîchissement vertical"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_REFRESH_RATE_POLLED,
- "Changer la fréquence de rafraîchissement détectée"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_REFRESH_RATE_AUTO,
+ "Fréquence estimée de l'écran"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_ROTATION,
- "Rotation vidéo "
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_REFRESH_RATE_POLLED,
+ "Changer la fréquence de rafraîchissement détectée"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SCREEN_ORIENTATION,
- "Orientation de l'écran"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_ROTATION,
+ "Rotation vidéo "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SCALE,
- "Échelle en mode fenêtré"
- )
+ MENU_ENUM_LABEL_VALUE_SCREEN_ORIENTATION,
+ "Orientation de l'écran"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_THREADS,
- "Fils d'exécution de l'enregistrement "
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_SCALE,
+ "Échelle en mode fenêtré"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SCALE_INTEGER,
- "Échelle à l'entier"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_THREADS,
+ "Fils d'exécution de l'enregistrement "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS,
- "Vidéo"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_SCALE_INTEGER,
+ "Échelle à l'entier"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_DIR,
- "Shaders vidéo "
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS,
+ "Vidéo"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_NUM_PASSES,
- "Passages de shaders"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_DIR,
+ "Shaders vidéo "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PARAMETERS,
- "Paramètres des shaders"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_NUM_PASSES,
+ "Passages de shaders"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET,
- "Charger des préréglages de shaders"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PARAMETERS,
+ "Paramètres des shaders"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE_AS,
- "Enregistrer les préréglages de shaders sous"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET,
+ "Charger des préréglages de shaders"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE_CORE,
- "Enregistrer les préréglages pour le cœur"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE,
+ "Enregistrer"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE_PARENT,
- "Enregistrer les préréglages pour le contenu"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE_AS,
+ "Enregistrer les préréglages de shaders sous"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE_GAME,
- "Enregistrer les préréglages pour le jeu"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE_GLOBAL,
+ "Enregistrer les préréglages de shaders globaux"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SHARED_CONTEXT,
- "Contexte matériel partagé"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE_CORE,
+ "Enregistrer les préréglages pour le cœur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SMOOTH,
- "Filtre bilinéaire"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE_PARENT,
+ "Enregistrer les préréglages pour le contenu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SOFT_FILTER,
- "Filtre logiciel"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE_GAME,
+ "Enregistrer les préréglages pour le jeu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SWAP_INTERVAL,
- "Intervalle d'échange V-Sync "
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHARED_CONTEXT,
+ "Contexte matériel partagé"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_TAB,
- "Vidéo"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_SMOOTH,
+ "Filtre bilinéaire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_THREADED,
- "Vidéo sur plusieurs fils d'exécution"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_SOFT_FILTER,
+ "Filtre logiciel"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_VFILTER,
- "Élimination des scintillements"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_SWAP_INTERVAL,
+ "Intervalle d'échange V-Sync "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_VIEWPORT_CUSTOM_HEIGHT,
- "Hauteur de l'affichage (Rapport d'aspect personnalisé)"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_TAB,
+ "Vidéo"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_VIEWPORT_CUSTOM_WIDTH,
- "Largeur de l'affichage (Rapport d'aspect personnalisé)"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_THREADED,
+ "Vidéo sur plusieurs fils d'exécution"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_VIEWPORT_CUSTOM_X,
- "Position X de l'affichage (Rapport d'aspect personnalisé)"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_VFILTER,
+ "Élimination des scintillements"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_VIEWPORT_CUSTOM_Y,
- "Position Y de l'affichage (Rapport d'aspect personnalisé)"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_VIEWPORT_CUSTOM_HEIGHT,
+ "Hauteur de l'affichage (Rapport d'aspect personnalisé)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_VI_WIDTH,
- "Définir la largeur d'écran de VI"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_VIEWPORT_CUSTOM_WIDTH,
+ "Largeur de l'affichage (Rapport d'aspect personnalisé)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_VSYNC,
- "Synchronisation verticale (V-Sync)"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_VIEWPORT_CUSTOM_X,
+ "Position X de l'affichage (Rapport d'aspect personnalisé)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_WINDOWED_FULLSCREEN,
- "Mode plein écran fenêtré"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_VIEWPORT_CUSTOM_Y,
+ "Position Y de l'affichage (Rapport d'aspect personnalisé)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_WIDTH,
- "Largeur de fenêtre"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_VI_WIDTH,
+ "Définir la largeur d'écran de VI"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_HEIGHT,
- "Hauteur de fenêtre"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_OVERSCAN_CORRECTION_TOP,
+ "Correction de l'overscan (Haut)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_FULLSCREEN_X,
- "Largeur en plein écran"
- )
+ MENU_ENUM_SUBLABEL_VIDEO_OVERSCAN_CORRECTION_TOP,
+ "Ajuste le surbalayage à l'écran en réduisant la taille de l'image par un nombre spécifique de lignes de balayage (enlevées du haut de l'écran). REMARQUE : Peut introduire des artefacts d'agrandissement."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_FULLSCREEN_Y,
- "Hauteur en plein écran"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_OVERSCAN_CORRECTION_BOTTOM,
+ "Correction de l'overscan (Bas)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_WIFI_DRIVER,
- "Wi-Fi "
- )
+ MENU_ENUM_SUBLABEL_VIDEO_OVERSCAN_CORRECTION_BOTTOM,
+ "Ajuste le surbalayage à l'écran en réduisant la taille de l'image par un nombre spécifique de lignes de balayage (enlevées du bas de l'écran). REMARQUE : Peut introduire des artefacts d'agrandissement."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_WIFI_SETTINGS,
- "Wi-Fi"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_VSYNC,
+ "Synchronisation verticale (V-Sync)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_ALPHA_FACTOR,
- "Opacité du menu "
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_WINDOWED_FULLSCREEN,
+ "Mode plein écran fenêtré"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_FONT_COLOR_RED,
- "Valeur de rouge (Police du menu)"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_WIDTH,
+ "Largeur de fenêtre"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_FONT_COLOR_GREEN,
- "Valeur de vert (Police du menu)"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_HEIGHT,
+ "Hauteur de fenêtre"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_FONT_COLOR_BLUE,
- "Valeur de bleu (Police du menu)"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_FULLSCREEN_X,
+ "Largeur en plein écran"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_FONT,
- "Police du menu "
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_CUSTOM,
- "Personnalisé"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_FLATUI,
- "Minimaliste"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_MONOCHROME,
- "Monochrome"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_MONOCHROME_INVERTED,
- "Monochrome inversé"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_SYSTEMATIC,
- "Systématique"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_NEOACTIVE,
- "NéoActif"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_PIXEL,
- "Pixel"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_RETROACTIVE,
- "RétroActif"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_RETROSYSTEM,
- "Rétrosystème"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_DOTART,
- "Pixel art"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_AUTOMATIC,
- "Automatique"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_AUTOMATIC_INVERTED,
- "Automatique inversé"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME,
- "Thème de couleur du menu "
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_APPLE_GREEN,
- "Vert pomme"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_DARK,
- "Sombre"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_LIGHT,
- "Clair"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_MORNING_BLUE,
- "Bleu du matin"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_DARK_PURPLE,
- "Violet sombre"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_ELECTRIC_BLUE,
- "Bleu électrique"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_GOLDEN,
- "Doré"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_LEGACY_RED,
- "Rouge hérité"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_MIDNIGHT_BLUE,
- "Bleu nuit"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_PLAIN,
- "Ordinaire"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_UNDERSEA,
- "Sous-marin"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_VOLCANIC_RED,
- "Rouge volcanique"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_SUNBEAM,
- "Sunbeam"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE,
- "Pipeline de shader du menu (fond animé) "
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_SCALE_FACTOR,
- "Facteur d'échelle du menu "
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE,
- "Ombres des icônes"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_HISTORY,
- "Afficher 'Historique'"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_ADD,
- "Afficher 'Importer du contenu'"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_PLAYLISTS,
- "Afficher les listes de lecture"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_FAVORITES,
- "Afficher 'Favoris'"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_IMAGES,
- "Afficher 'Images'"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_MUSIC,
- "Afficher 'Musique'"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_SETTINGS,
- "Afficher 'Réglages'"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_VIDEO,
- "Afficher 'Vidéo'"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_NETPLAY,
- "Afficher 'Jeu en réseau'"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_LAYOUT,
- "Mise en page du menu "
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_THEME,
- "Thème d'icônes du menu "
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_YES,
- "Oui"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_TWO,
- "Préréglages de shaders"
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEEVOS_ENABLE,
- "Rivalisez pour gagner des succès sur mesure dans des jeux rétro.\n"
- "Pour plus d'informations, veuillez visiter http://retroachievements.org"
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEEVOS_TEST_UNOFFICIAL,
- "Utiliser des succès non officiels et/ou fonctionnalités bêta à des fins de test."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEEVOS_HARDCORE_MODE_ENABLE,
- "Double le nombre de points gagnés.\n"
- "Désactive les sauvegardes instantanées, les cheats, le rembobinage, la mise en pause et le ralenti pour tous les jeux.\n"
- "Cette option redémarrera votre jeu."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEEVOS_LEADERBOARDS_ENABLE,
- "Classements spécifiques au jeu.\n"
- "N'a aucun effet si le mode Hardcore est désactivé."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEEVOS_BADGES_ENABLE,
- "Affiche les badges dans la liste des succès."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEEVOS_VERBOSE_ENABLE,
- "Affiche plus d'informations dans les notifications."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEEVOS_AUTO_SCREENSHOT,
- "Prendre automatiquement une capture d'écran lorsqu'un succès est débloqué."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEEVOS_OLD_ENABLE,
- "Utiliser l'ancienne implémentation du traitement des succès\n"
- "(en cas de doute, désactivez cette option)."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_DRIVER_SETTINGS,
- "Modifier les pilotes utilisés par ce système."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_RETRO_ACHIEVEMENTS_SETTINGS,
- "Modifier les réglages des succès."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CORE_SETTINGS,
- "Modifier les réglages du cœur."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_RECORDING_SETTINGS,
- "Modifier les réglages d'enregistrement."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_ONSCREEN_DISPLAY_SETTINGS,
- "Modifier les réglages de surimpression à l'écran, de surimpression de clavier, et de notifications à l'écran."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_FRAME_THROTTLE_SETTINGS,
- "Modifier les réglages pour le rembobinage, l'avance rapide et le ralenti."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_SAVING_SETTINGS,
- "Modifier les réglages de sauvegarde."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_LOGGING_SETTINGS,
- "Modifier les réglages de journalisation."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_USER_INTERFACE_SETTINGS,
- "Modifier les réglages de l'interface utilisateur."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_USER_SETTINGS,
- "Modifier les réglages de compte, de pseudo et de langue."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_PRIVACY_SETTINGS,
- "Modifier les réglages de confidentialité."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_MIDI_SETTINGS,
- "Modifier les réglages MIDI."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_DIRECTORY_SETTINGS,
- "Modifier les dossiers par défaut où les fichiers sont stockés."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_PLAYLIST_SETTINGS,
- "Modifier les réglages de listes de lecture."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_NETWORK_SETTINGS,
- "Configurer les réglages de serveur et de réseau."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_ADD_CONTENT_LIST,
- "Analyser le contenu et l'ajouter à la base de données."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_SETTINGS,
- "Modifier les réglages de sortie audio."
- )
-#ifdef HAVE_LAKKA
-MSG_HASH(
- MENU_ENUM_SUBLABEL_BLUETOOTH_ENABLE,
- "Détermine l'état de Bluetooth."
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_FULLSCREEN_Y,
+ "Hauteur en plein écran"
+ )
+#ifdef HAVE_VIDEO_LAYOUT
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_VIDEO_LAYOUT_ENABLE,
+ "Active la disposition d'affichage"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_LAYOUT_ENABLE,
+ "Les dispositions d'affichage sont utilisées pour les bezels et autres éléments graphiques."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_VIDEO_LAYOUT_PATH,
+ "Dossier des dispositions d'affichage"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_LAYOUT_PATH,
+ "Sélectionne une disposition d'affichage depuis le navigateur de fichiers."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_VIDEO_LAYOUT_SELECTED_VIEW,
+ "Vue sélectionnée"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_LAYOUT_SELECTED_VIEW,
+ "Sélectionne une vue pour la disposition d'affichage."
+ )
#endif
MSG_HASH(
- MENU_ENUM_SUBLABEL_CONFIG_SAVE_ON_EXIT,
- "Enregistrer les modifications dans le fichier de configuration à la sortie."
- )
+ MENU_ENUM_LABEL_VALUE_WIFI_DRIVER,
+ "Wi-Fi "
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CONFIGURATION_SETTINGS,
- "Modifier les réglages par défaut pour les fichiers de configuration."
- )
+ MENU_ENUM_LABEL_VALUE_WIFI_SETTINGS,
+ "Wi-Fi"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CONFIGURATIONS_LIST,
- "Gérer et créer les fichiers de configuration."
- )
+ MENU_ENUM_LABEL_VALUE_XMB_ALPHA_FACTOR,
+ "Opacité du menu "
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CPU_CORES,
- "Nombre de cœurs dont dispose le processeur."
- )
+ MENU_ENUM_LABEL_VALUE_MENU_FONT_COLOR_RED,
+ "Valeur de rouge (Police du menu)"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_FPS_SHOW,
- "Affiche le nombre d'images/s à l'écran."
- )
+ MENU_ENUM_LABEL_VALUE_MENU_FONT_COLOR_GREEN,
+ "Valeur de vert (Police du menu)"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_FRAMECOUNT_SHOW,
- "Affiche le compteur d'images actuel à l'écran."
- )
+ MENU_ENUM_LABEL_VALUE_MENU_FONT_COLOR_BLUE,
+ "Valeur de bleu (Police du menu)"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MEMORY_SHOW,
- "Inclut l'utilisation actuelle/le total de la mémoire utilisée à l'écran avec les images/s et le nombre d'images."
- )
+ MENU_ENUM_LABEL_VALUE_XMB_FONT,
+ "Police du menu "
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_HOTKEY_BINDS,
- "Configurer les réglages de touches de raccourci."
- )
+ MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_CUSTOM,
+ "Personnalisé"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_MENU_ENUM_TOGGLE_GAMEPAD_COMBO,
- "Combinaison de touches de la manette pour afficher/masquer le menu."
- )
+ MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_FLATUI,
+ "Minimaliste"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_SETTINGS,
- "Modifier les réglages de manettes, clavier et souris."
- )
+ MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_MONOCHROME,
+ "Monochrome"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_USER_BINDS,
- "Configurer les touches pour cet utilisateur."
- )
+ MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_MONOCHROME_INVERTED,
+ "Monochrome inversé"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_LATENCY_SETTINGS,
- "Modifier les réglages liés à la latence vidéo, audio et d'entrées."
- )
+ MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_SYSTEMATIC,
+ "Systématique"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_LOG_VERBOSITY,
- "Journaliser les événements sur un terminal ou dans un fichier."
- )
+ MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_NEOACTIVE,
+ "NéoActif"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY,
- "Rejoindre ou héberger une session de jeu en réseau."
- )
+ MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_PIXEL,
+ "Pixel"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_LAN_SCAN_SETTINGS,
- "Rechercher et se connecter à des hôtes de jeu en réseau sur le réseau local."
- )
+ MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_RETROACTIVE,
+ "RétroActif"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_INFORMATION_LIST_LIST,
- "Affiche les informations du système."
- )
+ MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_RETROSYSTEM,
+ "Rétrosystème"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_ONLINE_UPDATER,
- "Télécharger des add-ons, des composants et du contenu pour RetroArch."
- )
+ MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_DOTART,
+ "Pixel art"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_AUTOMATIC,
+ "Automatique"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_XMB_ICON_THEME_AUTOMATIC_INVERTED,
+ "Automatique inversé"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME,
+ "Thème de couleur du menu "
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_APPLE_GREEN,
+ "Vert pomme"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_DARK,
+ "Sombre"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_LIGHT,
+ "Clair"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_MORNING_BLUE,
+ "Bleu du matin"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_DARK_PURPLE,
+ "Violet sombre"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_ELECTRIC_BLUE,
+ "Bleu électrique"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_GOLDEN,
+ "Doré"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_LEGACY_RED,
+ "Rouge hérité"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_MIDNIGHT_BLUE,
+ "Bleu nuit"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_PLAIN,
+ "Ordinaire"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_UNDERSEA,
+ "Sous-marin"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_XMB_MENU_COLOR_THEME_VOLCANIC_RED,
+ "Rouge volcanique"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_XMB_RIBBON_ENABLE,
+ "Pipeline de shader du menu (fond animé) "
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_XMB_SHADOWS_ENABLE,
+ "Ombres des icônes"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_HISTORY,
+ "Afficher 'Historique'"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_ADD,
+ "Afficher 'Importer du contenu'"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_PLAYLISTS,
+ "Afficher les listes de lecture"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_FAVORITES,
+ "Afficher 'Favoris'"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_IMAGES,
+ "Afficher 'Images'"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_MUSIC,
+ "Afficher 'Musique'"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_SETTINGS,
+ "Afficher 'Réglages'"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_VIDEO,
+ "Afficher 'Vidéo'"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_NETPLAY,
+ "Afficher 'Jeu en réseau'"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_XMB_LAYOUT,
+ "Mise en page du menu "
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_XMB_THEME,
+ "Thème d'icônes du menu "
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_YES,
+ "Oui"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_TWO,
+ "Préréglages de shaders"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEEVOS_ENABLE,
+ "Rivalisez pour gagner des succès sur mesure dans des jeux rétro.\n"
+ "Pour plus d'informations, veuillez visiter http://retroachievements.org"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEEVOS_TEST_UNOFFICIAL,
+ "Utiliser des succès non officiels et/ou fonctionnalités bêta à des fins de test."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEEVOS_HARDCORE_MODE_ENABLE,
+ "Double le nombre de points gagnés.\n"
+ "Désactive les sauvegardes instantanées, les cheats, le rembobinage, la mise en pause et le ralenti pour tous les jeux.\n"
+ "Cette option redémarrera votre jeu."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEEVOS_LEADERBOARDS_ENABLE,
+ "Classements spécifiques au jeu.\n"
+ "N'a aucun effet si le mode Hardcore est désactivé."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEEVOS_BADGES_ENABLE,
+ "Affiche les badges dans la liste des succès."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEEVOS_VERBOSE_ENABLE,
+ "Affiche plus d'informations dans les notifications."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEEVOS_AUTO_SCREENSHOT,
+ "Prendre automatiquement une capture d'écran lorsqu'un succès est débloqué."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEEVOS_OLD_ENABLE,
+ "Utiliser l'ancienne implémentation du traitement des succès\n"
+ "(en cas de doute, désactivez cette option)."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_DRIVER_SETTINGS,
+ "Modifier les pilotes utilisés par ce système."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_RETRO_ACHIEVEMENTS_SETTINGS,
+ "Modifier les réglages des succès."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CORE_SETTINGS,
+ "Modifier les réglages du cœur."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_RECORDING_SETTINGS,
+ "Modifier les réglages d'enregistrement."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_ONSCREEN_DISPLAY_SETTINGS,
+ "Modifier les réglages de surimpression à l'écran, de surimpression de clavier, et de notifications à l'écran."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_FRAME_THROTTLE_SETTINGS,
+ "Modifier les réglages pour le rembobinage, l'avance rapide et le ralenti."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SAVING_SETTINGS,
+ "Modifier les réglages de sauvegarde."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_LOGGING_SETTINGS,
+ "Modifier les réglages de journalisation."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_USER_INTERFACE_SETTINGS,
+ "Modifier les réglages de l'interface utilisateur."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_USER_SETTINGS,
+ "Modifier les réglages de compte, de pseudo et de langue."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_PRIVACY_SETTINGS,
+ "Modifier les réglages de confidentialité."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_MIDI_SETTINGS,
+ "Modifier les réglages MIDI."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_DIRECTORY_SETTINGS,
+ "Modifier les dossiers où les fichiers sont stockés par défaut."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_PLAYLIST_SETTINGS,
+ "Modifier les réglages de listes de lecture."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_NETWORK_SETTINGS,
+ "Configurer les réglages de serveur et de réseau."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_ADD_CONTENT_LIST,
+ "Analyser le contenu et l'ajouter à la base de données."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AUDIO_SETTINGS,
+ "Modifier les réglages de sortie audio."
+ )
#ifdef HAVE_LAKKA
MSG_HASH(
- MENU_ENUM_SUBLABEL_SAMBA_ENABLE,
- "Partager des dossiers réseau via le protocole SMB."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_SERVICES_SETTINGS,
- "Gérer les services au niveau du système d'exploitation."
- )
+ MENU_ENUM_SUBLABEL_BLUETOOTH_ENABLE,
+ "Déterminer l'état de Bluetooth."
+ )
#endif
MSG_HASH(
- MENU_ENUM_SUBLABEL_SHOW_HIDDEN_FILES,
- "Affiche les fichiers/dossiers cachés dans le navigateur de fichiers."
- )
+ MENU_ENUM_SUBLABEL_CONFIG_SAVE_ON_EXIT,
+ "Enregistrer les modifications dans le fichier de configuration à la sortie."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CONFIGURATION_SETTINGS,
+ "Modifier les réglages par défaut pour les fichiers de configuration."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CONFIGURATIONS_LIST,
+ "Gérer et créer les fichiers de configuration."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CPU_CORES,
+ "Nombre de cœurs dont dispose le processeur."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_FPS_SHOW,
+ "Affiche le nombre d'images/s à l'écran."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_FRAMECOUNT_SHOW,
+ "Affiche le compteur d'images actuel à l'écran."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_MEMORY_SHOW,
+ "Inclut l'utilisation actuelle/le total de la mémoire utilisée à l'écran avec les images/s et le nombre d'images."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_INPUT_HOTKEY_BINDS,
+ "Configurer les réglages de touches de raccourci."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_INPUT_MENU_ENUM_TOGGLE_GAMEPAD_COMBO,
+ "Combinaison de touches de la manette pour afficher/masquer le menu."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_INPUT_SETTINGS,
+ "Modifier les réglages de manettes, clavier et souris."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_INPUT_USER_BINDS,
+ "Configurer les touches pour cet utilisateur."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_LATENCY_SETTINGS,
+ "Modifier les réglages liés à la latence vidéo, audio et d'entrées."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_LOG_VERBOSITY,
+ "Journaliser les événements sur un terminal ou dans un fichier."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_NETPLAY,
+ "Rejoindre ou héberger une session de jeu en réseau."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_NETPLAY_LAN_SCAN_SETTINGS,
+ "Rechercher et se connecter à des hôtes de jeu en réseau sur le réseau local."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_INFORMATION_LIST_LIST,
+ "Affiche les informations du système."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_ONLINE_UPDATER,
+ "Télécharger des add-ons, des composants et du contenu pour RetroArch."
+ )
#ifdef HAVE_LAKKA
MSG_HASH(
- MENU_ENUM_SUBLABEL_SSH_ENABLE,
- "Utiliser SSH pour accéder à la ligne de commande à distance."
- )
+ MENU_ENUM_SUBLABEL_SAMBA_ENABLE,
+ "Partage des dossiers réseau via le protocole SMB."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SERVICES_SETTINGS,
+ "Gérer les services au niveau du système d'exploitation."
+ )
#endif
MSG_HASH(
- MENU_ENUM_SUBLABEL_SUSPEND_SCREENSAVER_ENABLE,
- "Empêche l'économiseur d'écran de votre système de s'activer."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_WINDOW_SCALE,
- "Définir la taille de la fenêtre par rapport à la taille d'affichage du cœur. Alternativement, vous pouvez définir une largeur et une hauteur de fenêtre ci-dessous pour une taille de fenêtre fixe."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_USER_LANGUAGE,
- "Définir la langue de l'interface."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_BLACK_FRAME_INSERTION,
- "Insère une image noire entre chaque image. Utile pour les utilisateurs d'écrans 120Hz qui souhaitent jouer à du contenu 60Hz sans rémanence."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_FRAME_DELAY,
- "Réduit la latence au détriment d'un risque accru de saccades visuelles. Ajoute un délai après la synchronisation verticale V-Sync (en ms)."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_HARD_SYNC_FRAMES,
- "Définit le nombre d'images que le processeur peut exécuter avant le processeur graphique lors de l'utilisation de la 'Synchronisation matérielle du processeur graphique'."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_MAX_SWAPCHAIN_IMAGES,
- "Indique au pilote vidéo d'utiliser explicitement le mode de mise en mémoire tampon spécifié."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_MONITOR_INDEX,
- "Sélectionner l'écran à utiliser."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_REFRESH_RATE_AUTO,
- "Fréquence de rafraîchissement précise estimée pour l'écran en Hz."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_REFRESH_RATE_POLLED,
- "Fréquence de rafraîchissement détectée par le pilote d'affichage."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SETTINGS,
- "Modifier les réglages de sortie vidéo."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_WIFI_SETTINGS,
- "Analyser les réseaux sans fil et établit la connexion."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_HELP_LIST,
- "En savoir plus sur le fonctionnement du programme."
- )
-MSG_HASH(
- MSG_ADDED_TO_FAVORITES,
- "Ajouté aux favoris"
- )
-MSG_HASH(
- MSG_RESET_CORE_ASSOCIATION,
- "L'association au cœur de l'entrée dans la liste de lecture a été réinitialisée."
- )
-MSG_HASH(
- MSG_APPENDED_DISK,
- "Disque ajouté"
- )
-MSG_HASH(
- MSG_APPLICATION_DIR,
- "Dossier de l'application"
- )
-MSG_HASH(
- MSG_APPLYING_CHEAT,
- "Appliquer les changements des cheats."
- )
-MSG_HASH(
- MSG_APPLYING_SHADER,
- "Appliquer le shader"
- )
-MSG_HASH(
- MSG_AUDIO_MUTED,
- "Son coupé."
- )
-MSG_HASH(
- MSG_AUDIO_UNMUTED,
- "Son réactivé."
- )
-MSG_HASH(
- MSG_AUTOCONFIG_FILE_ERROR_SAVING,
- "Erreur lors de l'enregistrement du fichier de configuration automatique."
- )
-MSG_HASH(
- MSG_AUTOCONFIG_FILE_SAVED_SUCCESSFULLY,
- "Fichier de configuration automatique enregistré avec succès."
- )
-MSG_HASH(
- MSG_AUTOSAVE_FAILED,
- "Impossible d'initialiser l'enregistrement automatique."
- )
-MSG_HASH(
- MSG_AUTO_SAVE_STATE_TO,
- "Sauvegarde instantanée automatique vers"
- )
-MSG_HASH(
- MSG_BLOCKING_SRAM_OVERWRITE,
- "Empêcher l'écrasement de la mémoire SRAM"
- )
-MSG_HASH(
- MSG_BRINGING_UP_COMMAND_INTERFACE_ON_PORT,
- "Appeler l'interface de commande sur le port"
- )
-MSG_HASH(
- MSG_BYTES,
- "octets"
- )
-MSG_HASH(
- MSG_CANNOT_INFER_NEW_CONFIG_PATH,
- "Impossible de déduire le nouvel emplacement du fichier de configuration. Utilisation de l'heure actuelle."
- )
-MSG_HASH(
- MSG_CHEEVOS_HARDCORE_MODE_ENABLE,
- "Mode Hardcore activé pour les succès, la sauvegarde instantanée et le rembobinage ont été désactivés."
- )
-MSG_HASH(
- MSG_COMPARING_WITH_KNOWN_MAGIC_NUMBERS,
- "Comparaison avec les nombres magiques connus..."
- )
-MSG_HASH(
- MSG_COMPILED_AGAINST_API,
- "Compilé avec l'API"
- )
-MSG_HASH(
- MSG_CONFIG_DIRECTORY_NOT_SET,
- "Dossier de configuration non défini. Impossible de sauvegarder la nouvelle configuration."
- )
-MSG_HASH(
- MSG_CONNECTED_TO,
- "Connecté à"
- )
-MSG_HASH(
- MSG_CONTENT_CRC32S_DIFFER,
- "Le CRC32 du contenu est différent. Impossible d'utiliser des jeux non-identiques."
- )
-MSG_HASH(
- MSG_CONTENT_LOADING_SKIPPED_IMPLEMENTATION_WILL_DO_IT,
- "Chargement du contenu ignoré. L'implémentation va le charger elle-même."
- )
-MSG_HASH(
- MSG_CORE_DOES_NOT_SUPPORT_SAVESTATES,
- "Le cœur ne prend pas en charge les sauvegardes instantanées."
- )
-MSG_HASH(
- MSG_CORE_OPTIONS_FILE_CREATED_SUCCESSFULLY,
- "Fichier d'options du cœur créé avec succès."
- )
-MSG_HASH(
- MSG_COULD_NOT_FIND_ANY_NEXT_DRIVER,
- "Impossible de trouver un pilote suivant."
- )
-MSG_HASH(
- MSG_COULD_NOT_FIND_COMPATIBLE_SYSTEM,
- "Impossible de trouver un système compatible."
- )
-MSG_HASH(
- MSG_COULD_NOT_FIND_VALID_DATA_TRACK,
- "Impossible de trouver une piste de données valide"
- )
-MSG_HASH(
- MSG_COULD_NOT_OPEN_DATA_TRACK,
- "Impossible d'ouvrir la piste de données."
- )
-MSG_HASH(
- MSG_COULD_NOT_READ_CONTENT_FILE,
- "Impossible de lire le fichier de contenu."
- )
-MSG_HASH(
- MSG_COULD_NOT_READ_MOVIE_HEADER,
- "Impossible de lire l'en-tête du film."
- )
-MSG_HASH(
- MSG_COULD_NOT_READ_STATE_FROM_MOVIE,
- "Impossible de lire l'état du film."
- )
-MSG_HASH(
- MSG_CRC32_CHECKSUM_MISMATCH,
- "Incohérence de la somme de contrôle CRC32 entre le fichier de contenu et la somme de contrôle du contenu enregistré dans l'en-tête du fichier de lecture. Replay très susceptible de se désynchroniser lors de la lecture."
- )
-MSG_HASH(
- MSG_CUSTOM_TIMING_GIVEN,
- "Temps personnalisé attribué"
- )
-MSG_HASH(
- MSG_DECOMPRESSION_ALREADY_IN_PROGRESS,
- "Décompression déjà en cours."
- )
-MSG_HASH(
- MSG_DECOMPRESSION_FAILED,
- "Échec à la décompression."
- )
-MSG_HASH(
- MSG_DETECTED_VIEWPORT_OF,
- "Taille de la fenêtre d'affichage détectée de"
- )
-MSG_HASH(
- MSG_DID_NOT_FIND_A_VALID_CONTENT_PATCH,
- "Impossible de trouver un patch de contenu valide."
- )
-MSG_HASH(
- MSG_DISCONNECT_DEVICE_FROM_A_VALID_PORT,
- "Déconnecter le périphérique d'un port valide."
- )
-MSG_HASH(
- MSG_DISK_CLOSED,
- "Fermé"
- )
-MSG_HASH(
- MSG_DISK_EJECTED,
- "Éjecté"
- )
-MSG_HASH(
- MSG_DOWNLOADING,
- "Téléchargement"
- )
-MSG_HASH(
- MSG_INDEX_FILE,
- "numéro"
- )
-MSG_HASH(
- MSG_DOWNLOAD_FAILED,
- "Échec du téléchargement"
- )
-MSG_HASH(
- MSG_ERROR,
- "Erreur"
- )
-MSG_HASH(
- MSG_ERROR_LIBRETRO_CORE_REQUIRES_CONTENT,
- "Le cœur Libretro nécessite du contenu, mais rien n'a été fourni."
- )
-MSG_HASH(
- MSG_ERROR_LIBRETRO_CORE_REQUIRES_SPECIAL_CONTENT,
- "Le cœur Libretro nécessite un contenu spécial, mais aucun n'a été fourni."
- )
-MSG_HASH(
- MSG_ERROR_LIBRETRO_CORE_REQUIRES_VFS,
- "Le cœur ne prend pas en charge le VFS, et le chargement à partir d'une copie locale a échoué"
- )
-MSG_HASH(
- MSG_ERROR_PARSING_ARGUMENTS,
- "Erreur lors de l'analyse des arguments."
- )
-MSG_HASH(
- MSG_ERROR_SAVING_CORE_OPTIONS_FILE,
- "Erreur lors de l'enregistrement du fichier d'options du cœur."
- )
-MSG_HASH(
- MSG_ERROR_SAVING_REMAP_FILE,
- "Erreur lors de l'enregistrement du fichier de remappage."
- )
-MSG_HASH(
- MSG_ERROR_REMOVING_REMAP_FILE,
- "Erreur lors de la suppression du fichier de remappage."
- )
-MSG_HASH(
- MSG_ERROR_SAVING_SHADER_PRESET,
- "Erreur lors de l'enregistrement des préréglages de shaders."
- )
-MSG_HASH(
- MSG_EXTERNAL_APPLICATION_DIR,
- "Dossier d'applications externes"
- )
-MSG_HASH(
- MSG_EXTRACTING,
- "Extraction"
- )
-MSG_HASH(
- MSG_EXTRACTING_FILE,
- "Extraction du fichier"
- )
-MSG_HASH(
- MSG_FAILED_SAVING_CONFIG_TO,
- "Erreur lors de l'enregistrement de la configuration vers"
- )
-MSG_HASH(
- MSG_FAILED_TO,
- "Échec de"
- )
-MSG_HASH(
- MSG_FAILED_TO_ACCEPT_INCOMING_SPECTATOR,
- "Échec à l'accueil du spectateur entrant."
- )
-MSG_HASH(
- MSG_FAILED_TO_ALLOCATE_MEMORY_FOR_PATCHED_CONTENT,
- "Échec d'allocation de mémoire pour le contenu patché..."
- )
-MSG_HASH(
- MSG_FAILED_TO_APPLY_SHADER,
- "Échec à l'application du shader."
- )
-MSG_HASH(
- MSG_FAILED_TO_BIND_SOCKET,
- "Échec de l'attribution du socket."
- )
-MSG_HASH(
- MSG_FAILED_TO_CREATE_THE_DIRECTORY,
- "Échec à la création du dossier."
- )
-MSG_HASH(
- MSG_FAILED_TO_EXTRACT_CONTENT_FROM_COMPRESSED_FILE,
- "Échec de l'extraction du contenu depuis le fichier compressé."
- )
-MSG_HASH(
- MSG_FAILED_TO_GET_NICKNAME_FROM_CLIENT,
- "Échec à l'obtention du pseudo du client."
- )
-MSG_HASH(
- MSG_FAILED_TO_LOAD,
- "Échec de chargement."
- )
-MSG_HASH(
- MSG_FAILED_TO_LOAD_CONTENT,
- "Échec de chargement du contenu."
- )
-MSG_HASH(
- MSG_FAILED_TO_LOAD_MOVIE_FILE,
- "Échec de chargement du fichier vidéo."
- )
-MSG_HASH(
- MSG_FAILED_TO_LOAD_OVERLAY,
- "Échec de chargement de la surimpression."
- )
-MSG_HASH(
- MSG_FAILED_TO_LOAD_STATE,
- "Échec de chargement de la sauvegarde instantanée depuis"
- )
-MSG_HASH(
- MSG_FAILED_TO_OPEN_LIBRETRO_CORE,
- "Échec de l'ouverture du cœur Libretro"
- )
-MSG_HASH(
- MSG_FAILED_TO_PATCH,
- "Échec du patch"
- )
-MSG_HASH(
- MSG_FAILED_TO_RECEIVE_HEADER_FROM_CLIENT,
- "Échec de l'obtention de l'entête depuis le client."
- )
-MSG_HASH(
- MSG_FAILED_TO_RECEIVE_NICKNAME,
- "Échec de l'obtention du pseudo."
- )
-MSG_HASH(
- MSG_FAILED_TO_RECEIVE_NICKNAME_FROM_HOST,
- "Échec de l'obtention du pseudo depuis l'hôte."
- )
-MSG_HASH(
- MSG_FAILED_TO_RECEIVE_NICKNAME_SIZE_FROM_HOST,
- "Échec de l'obtention de la taille du pseudo depuis l'hôte."
- )
-MSG_HASH(
- MSG_FAILED_TO_RECEIVE_SRAM_DATA_FROM_HOST,
- "Échec de l'obtention des données SRAM depuis l'hôte."
- )
-MSG_HASH(
- MSG_FAILED_TO_REMOVE_DISK_FROM_TRAY,
- "Échec de l'éjection du disque depuis le lecteur."
- )
-MSG_HASH(
- MSG_FAILED_TO_REMOVE_TEMPORARY_FILE,
- "Échec de la suppression du fichier temporaire"
- )
-MSG_HASH(
- MSG_FAILED_TO_SAVE_SRAM,
- "Échec de la sauvegarde de la SRAM"
- )
-MSG_HASH(
- MSG_FAILED_TO_SAVE_STATE_TO,
- "Échec de la sauvegarde instantanée vers"
- )
-MSG_HASH(
- MSG_FAILED_TO_SEND_NICKNAME,
- "Échec de l'envoi du pseudo."
- )
-MSG_HASH(
- MSG_FAILED_TO_SEND_NICKNAME_SIZE,
- "Échec de l'envoi de la taille du pseudo."
- )
-MSG_HASH(
- MSG_FAILED_TO_SEND_NICKNAME_TO_CLIENT,
- "Échec de l'envoi du pseudo vers le client."
- )
-MSG_HASH(
- MSG_FAILED_TO_SEND_NICKNAME_TO_HOST,
- "Échec de l'envoi du pseudo vers l'hôte."
- )
-MSG_HASH(
- MSG_FAILED_TO_SEND_SRAM_DATA_TO_CLIENT,
- "Échec de l'envoi des données SRAM vers le client."
- )
-MSG_HASH(
- MSG_FAILED_TO_START_AUDIO_DRIVER,
- "Échec au démarrage du pilote audio. Continuera sans le son."
- )
-MSG_HASH(
- MSG_FAILED_TO_START_MOVIE_RECORD,
- "Échec au démarrage de l'enregistrement vidéo."
- )
-MSG_HASH(
- MSG_FAILED_TO_START_RECORDING,
- "Échec au démarrage de l'enregistrement."
- )
-MSG_HASH(
- MSG_FAILED_TO_TAKE_SCREENSHOT,
- "Échec de la capture d'écran."
- )
-MSG_HASH(
- MSG_FAILED_TO_UNDO_LOAD_STATE,
- "Échec de l'annulation du chargement de la sauvegarde instantanée."
- )
-MSG_HASH(
- MSG_FAILED_TO_UNDO_SAVE_STATE,
- "Échec de l'annulation de la sauvegarde instantanée."
- )
-MSG_HASH(
- MSG_FAILED_TO_UNMUTE_AUDIO,
- "Échec de la réactivation du son."
- )
-MSG_HASH(
- MSG_FATAL_ERROR_RECEIVED_IN,
- "Erreur fatale reçue dans"
- )
-MSG_HASH(
- MSG_FILE_NOT_FOUND,
- "Fichier non trouvé"
- )
-MSG_HASH(
- MSG_FOUND_AUTO_SAVESTATE_IN,
- "Sauvegarde instantanée automatique trouvée dans"
- )
-MSG_HASH(
- MSG_FOUND_DISK_LABEL,
- "Label de disque trouvé"
- )
-MSG_HASH(
- MSG_FOUND_FIRST_DATA_TRACK_ON_FILE,
- "Première piste de données trouvée dans le fichier"
- )
-MSG_HASH(
- MSG_FOUND_LAST_STATE_SLOT,
- "Dernier emplacement de sauvegarde instantanée trouvé"
- )
-MSG_HASH(
- MSG_FOUND_SHADER,
- "Shader trouvé"
- )
-MSG_HASH(
- MSG_FRAMES,
- "Images"
- )
-MSG_HASH(
- MSG_GAME_SPECIFIC_CORE_OPTIONS_FOUND_AT,
- "Options par jeu : options de cœur spécifiques au jeu trouvées dans"
- )
-MSG_HASH(
- MSG_GOT_INVALID_DISK_INDEX,
- "Numéro de disque non valide."
- )
-MSG_HASH(
- MSG_GRAB_MOUSE_STATE,
- "État de la capture de la souris"
- )
-MSG_HASH(
- MSG_GAME_FOCUS_ON,
- "Jeu au premier plan"
- )
-MSG_HASH(
- MSG_GAME_FOCUS_OFF,
- "Jeu en arrière-plan"
- )
-MSG_HASH(
- MSG_HW_RENDERED_MUST_USE_POSTSHADED_RECORDING,
- "Le cœur Libretro utilise le rendu matériel. Doit également utiliser les filtres vidéo lors de l'enregistrement."
- )
-MSG_HASH(
- MSG_INFLATED_CHECKSUM_DID_NOT_MATCH_CRC32,
- "La somme de contrôle du fichier décompressé ne correspond pas au CRC32."
- )
-MSG_HASH(
- MSG_INPUT_CHEAT,
- "Saisir le cheat"
- )
-MSG_HASH(
- MSG_INPUT_CHEAT_FILENAME,
- "Saisir le nom de fichier de cheats"
- )
-MSG_HASH(
- MSG_INPUT_PRESET_FILENAME,
- "Saisir le nom de fichier de préréglages"
- )
-MSG_HASH(
- MSG_INPUT_RENAME_ENTRY,
- "Entrez le nouveau nom"
- )
-MSG_HASH(
- MSG_INTERFACE,
- "Interface"
- )
-MSG_HASH(
- MSG_INTERNAL_STORAGE,
- "Stockage interne"
- )
-MSG_HASH(
- MSG_REMOVABLE_STORAGE,
- "Stockage amovible"
- )
-MSG_HASH(
- MSG_INVALID_NICKNAME_SIZE,
- "Taille du pseudo non valide."
- )
-MSG_HASH(
- MSG_IN_BYTES,
- "en octets "
- )
-MSG_HASH(
- MSG_IN_GIGABYTES,
- "en gigaoctets "
- )
-MSG_HASH(
- MSG_IN_MEGABYTES,
- "en mégaoctets "
- )
-MSG_HASH(
- MSG_LIBRETRO_ABI_BREAK,
- "est compilé avec une version différente de l'implémentation de libretro actuelle."
- )
-MSG_HASH(
- MSG_LIBRETRO_FRONTEND,
- "Frontend pour libretro"
- )
-MSG_HASH(
- MSG_LOADED_STATE_FROM_SLOT,
- "Sauvegarde instantanée chargée depuis l'emplacement #%d."
- )
-MSG_HASH(
- MSG_LOADED_STATE_FROM_SLOT_AUTO,
- "Sauvegarde instantanée chargée depuis l'emplacement #-1 (auto)."
- )
-MSG_HASH(
- MSG_LOADING,
- "Chargement"
- )
-MSG_HASH(
- MSG_FIRMWARE,
- "Un ou plusieurs fichiers de firmware sont manquants"
- )
-MSG_HASH(
- MSG_LOADING_CONTENT_FILE,
- "Chargement du fichier de contenu"
- )
-MSG_HASH(
- MSG_LOADING_HISTORY_FILE,
- "Chargement du fichier d'historique"
- )
-MSG_HASH(
- MSG_LOADING_STATE,
- "Chargement de la sauvegarde instantanée"
- )
-MSG_HASH(
- MSG_MEMORY,
- "Mémoire"
- )
-MSG_HASH(
- MSG_MOVIE_FILE_IS_NOT_A_VALID_BSV1_FILE,
- "Le fichier vidéo de relecture des touches pressées n'est pas un fichier BSV1 valide."
- )
-MSG_HASH(
- MSG_MOVIE_FORMAT_DIFFERENT_SERIALIZER_VERSION,
- "Le format de la vidéo de relecture des touches pressées semble avoir une version différente du sérialiseur. Échec très probable."
- )
-MSG_HASH(
- MSG_MOVIE_PLAYBACK_ENDED,
- "La relecture des touches pressées est terminée."
- )
-MSG_HASH(
- MSG_MOVIE_RECORD_STOPPED,
- "Arrêt de l'enregistrement vidéo."
- )
-MSG_HASH(
- MSG_NETPLAY_FAILED,
- "Échec de l'initialisation du jeu en réseau."
- )
-MSG_HASH(
- MSG_NO_CONTENT_STARTING_DUMMY_CORE,
- "Aucun contenu, chargement d'un cœur factice."
- )
-MSG_HASH(
- MSG_NO_SAVE_STATE_HAS_BEEN_OVERWRITTEN_YET,
- "Aucune sauvegarde instantanée n'a encore été écrasé."
- )
-MSG_HASH(
- MSG_NO_STATE_HAS_BEEN_LOADED_YET,
- "Aucune sauvegarde instantanée n'a encore été chargée."
- )
-MSG_HASH(
- MSG_OVERRIDES_ERROR_SAVING,
- "Erreur lors de l'enregistrement du fichier de remplacement de configuration."
- )
-MSG_HASH(
- MSG_OVERRIDES_SAVED_SUCCESSFULLY,
- "Fichier de remplacement de configuration enregistré avec succès."
- )
-MSG_HASH(
- MSG_PAUSED,
- "En pause."
- )
-MSG_HASH(
- MSG_PROGRAM,
- "RetroArch"
- )
-MSG_HASH(
- MSG_READING_FIRST_DATA_TRACK,
- "Lecture de la première piste de données..."
- )
-MSG_HASH(
- MSG_RECEIVED,
- "reçu"
- )
-MSG_HASH(
- MSG_RECORDING_TERMINATED_DUE_TO_RESIZE,
- "Enregistrement interrompu à cause du redimensionnement."
- )
-MSG_HASH(
- MSG_RECORDING_TO,
- "Enregistrement vers"
- )
-MSG_HASH(
- MSG_REDIRECTING_CHEATFILE_TO,
- "Redirection du fichier de cheats vers"
- )
-MSG_HASH(
- MSG_REDIRECTING_SAVEFILE_TO,
- "Redirection du fichier de sauvegarde vers"
- )
-MSG_HASH(
- MSG_REDIRECTING_SAVESTATE_TO,
- "Redirection de la sauvegarde instantanée vers"
- )
-MSG_HASH(
- MSG_REMAP_FILE_SAVED_SUCCESSFULLY,
- "Fichier de remappage enregistré avec succès."
- )
-MSG_HASH(
- MSG_REMAP_FILE_REMOVED_SUCCESSFULLY,
- "Fichier de remappage supprimé avec succès."
- )
-MSG_HASH(
- MSG_REMOVED_DISK_FROM_TRAY,
- "Disque retiré du lecteur."
- )
-MSG_HASH(
- MSG_REMOVING_TEMPORARY_CONTENT_FILE,
- "Suppression du fichier de contenu temporaire"
- )
-MSG_HASH(
- MSG_RESET,
- "Réinitialisation"
- )
-MSG_HASH(
- MSG_RESTARTING_RECORDING_DUE_TO_DRIVER_REINIT,
- "Redémarrage de l'enregistrement à cause de la réinitialisation du pilote."
- )
-MSG_HASH(
- MSG_RESTORED_OLD_SAVE_STATE,
- "Ancienne sauvegarde instantanée restaurée."
- )
-MSG_HASH(
- MSG_RESTORING_DEFAULT_SHADER_PRESET_TO,
- "Shaders : restauration des préréglages de shaders par défaut vers"
- )
-MSG_HASH(
- MSG_REVERTING_SAVEFILE_DIRECTORY_TO,
- "Rétablissement du dossier de sauvegarde vers"
- )
-MSG_HASH(
- MSG_REVERTING_SAVESTATE_DIRECTORY_TO,
- "Rétablissement du dossier de sauvegarde instantanée vers"
- )
-MSG_HASH(
- MSG_REWINDING,
- "Rembobinage."
- )
-MSG_HASH(
- MSG_REWIND_INIT,
- "Initialisation de la mémoire tampon de rembobinage avec la taille"
- )
-MSG_HASH(
- MSG_REWIND_INIT_FAILED,
- "Échec de l'initialisation de la mémoire tampon de rembobinage. Le rembobinage sera désactivé."
- )
-MSG_HASH(
- MSG_REWIND_INIT_FAILED_THREADED_AUDIO,
- "L'implementation utilise plusieurs fils d'exécution pour l'audio. Incompatible avec le rembobinage."
- )
-MSG_HASH(
- MSG_REWIND_REACHED_END,
- "Fin de la mémoire tampon de rembobinage atteinte."
- )
-MSG_HASH(
- MSG_SAVED_NEW_CONFIG_TO,
- "Nouvelle configuration enregistrée vers"
- )
-MSG_HASH(
- MSG_SAVED_STATE_TO_SLOT,
- "Sauvegarde instantanée enregistrée vers l'emplacement #%d."
- )
-MSG_HASH(
- MSG_SAVED_STATE_TO_SLOT_AUTO,
- "Sauvegarde instantanée enregistrée vers l'emplacement #-1 (auto)."
- )
-MSG_HASH(
- MSG_SAVED_SUCCESSFULLY_TO,
- "Enregistré avec succès vers"
- )
-MSG_HASH(
- MSG_SAVING_RAM_TYPE,
- "Enregistrement du type de RAM"
- )
-MSG_HASH(
- MSG_SAVING_STATE,
- "Sauvegarde instantanée en cours"
- )
-MSG_HASH(
- MSG_SCANNING,
- "Analyse en cours"
- )
-MSG_HASH(
- MSG_SCANNING_OF_DIRECTORY_FINISHED,
- "Analyse du dossier terminée"
- )
-MSG_HASH(
- MSG_SENDING_COMMAND,
- "Envoi de la commande"
- )
-MSG_HASH(
- MSG_SEVERAL_PATCHES_ARE_EXPLICITLY_DEFINED,
- "Plusieurs patchs sont explicitement définis, tous sont ignorés..."
- )
-MSG_HASH(
- MSG_SHADER,
- "Shader"
- )
-MSG_HASH(
- MSG_SHADER_PRESET_SAVED_SUCCESSFULLY,
- "Préréglages de shaders enregistrés avec succès."
- )
-MSG_HASH(
- MSG_SKIPPING_SRAM_LOAD,
- "Chargement de la SRAM ignoré."
- )
-MSG_HASH(
- MSG_SLOW_MOTION,
- "Ralenti."
- )
-MSG_HASH(
- MSG_FAST_FORWARD,
- "Avance rapide."
- )
-MSG_HASH(
- MSG_SLOW_MOTION_REWIND,
- "Rembobinage au ralenti."
- )
-MSG_HASH(
- MSG_SRAM_WILL_NOT_BE_SAVED,
- "La SRAM ne sera pas sauvegardée."
- )
-MSG_HASH(
- MSG_STARTING_MOVIE_PLAYBACK,
- "Démarrage de la lecture vidéo."
- )
-MSG_HASH(
- MSG_STARTING_MOVIE_RECORD_TO,
- "Démarrage de l'enregistrement vidéo vers"
- )
-MSG_HASH(
- MSG_STATE_SIZE,
- "Taille de la sauvegarde instantanée"
- )
-MSG_HASH(
- MSG_STATE_SLOT,
- "Emplacement de la sauvegarde instantanée"
- )
-MSG_HASH(
- MSG_TAKING_SCREENSHOT,
- "Capture d'écran."
- )
-MSG_HASH(
- MSG_SCREENSHOT_SAVED,
- "Capture d'écran enregistrée"
- )
-MSG_HASH(
- MSG_ACHIEVEMENT_UNLOCKED,
- "Succès débloqué"
- )
-MSG_HASH(
- MSG_CHANGE_THUMBNAIL_TYPE,
- "Changer le type de miniatures"
- )
-MSG_HASH(
- MSG_NO_THUMBNAIL_AVAILABLE,
- "Aucune miniature disponible"
- )
-MSG_HASH(
- MSG_PRESS_AGAIN_TO_QUIT,
- "Appuyez à nouveau pour quitter..."
- )
-MSG_HASH(
- MSG_TO,
- "vers"
- )
-MSG_HASH(
- MSG_UNDID_LOAD_STATE,
- "Chargement de la sauvegarde instantanée annulé."
- )
-MSG_HASH(
- MSG_UNDOING_SAVE_STATE,
- "Annulation de la sauvegarde instantanée"
- )
-MSG_HASH(
- MSG_UNKNOWN,
- "Inconnu"
- )
-MSG_HASH(
- MSG_UNPAUSED,
- "Réactivé."
- )
-MSG_HASH(
- MSG_UNRECOGNIZED_COMMAND,
- "Commande non reconnue"
- )
-MSG_HASH(
- MSG_USING_CORE_NAME_FOR_NEW_CONFIG,
- "Utilisation du nom du cœur pour la nouvelle configuration."
- )
-MSG_HASH(
- MSG_USING_LIBRETRO_DUMMY_CORE_RECORDING_SKIPPED,
- "Utilisation du cœur libretro factice. Enregistrement ignoré."
- )
-MSG_HASH(
- MSG_VALUE_CONNECT_DEVICE_FROM_A_VALID_PORT,
- "Connecter le périphérique depuis un port valide."
- )
-MSG_HASH(
- MSG_VALUE_DISCONNECTING_DEVICE_FROM_PORT,
- "Déconnexion du périphérique depuis le port"
- )
-MSG_HASH(
- MSG_VALUE_REBOOTING,
- "Redémarrage..."
- )
-MSG_HASH(
- MSG_VALUE_SHUTTING_DOWN,
- "Arrêt en cours..."
- )
-MSG_HASH(
- MSG_VERSION_OF_LIBRETRO_API,
- "Version de l'API libretro"
- )
-MSG_HASH(
- MSG_VIEWPORT_SIZE_CALCULATION_FAILED,
- "Le calcul de la taille de la fenêtre d'affichage a échoué ! Continuera à utiliser les données brutes. Cela ne fonctionnera probablement pas correctement..."
- )
-MSG_HASH(
- MSG_VIRTUAL_DISK_TRAY,
- "Lecteur de disque virtuel."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_LATENCY,
- "Latence audio désirée en millisecondes. Peut être ignorée si le pilote audio ne peut fournir une telle valeur."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_MUTE,
- "Désactiver/réactiver le son."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_RATE_CONTROL_DELTA,
- "Aide à atténuer les imperfections de timing lors de la synchronisation audio et vidéo. Sachez que si désactivé, une synchronisation correcte est presque impossible à obtenir."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CAMERA_ALLOW,
- "Autoriser ou empêcher l'accès à la caméra par les cœurs."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_LOCATION_ALLOW,
- "Autoriser ou empêcher l'accès aux services de localisation par les cœurs."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_MAX_USERS,
- "Nombre maximum d'utilisateurs pris en charge par RetroArch."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_POLL_TYPE_BEHAVIOR,
- "Influence la façon dont la détection des touches pressées est effectuée dans RetroArch. Utiliser 'Précoce' ou 'Tardive' peut diminuer la latence, en fonction de votre configuration."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_ALL_USERS_CONTROL_MENU,
- "Permet à tous les utilisateurs de contrôler le menu. Si désactivé, seul l'utilisateur 1 peut contrôler le menu."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_VOLUME,
- "Volume sonore (en dB). 0 dB correspond au volume normal, et aucun gain n'est appliqué."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_WASAPI_EXCLUSIVE_MODE,
- "Autoriser le pilote WASAPI à prendre le contrôle exclusif du périphérique audio. Si désactivé, le mode partagé sera utilisé."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_WASAPI_FLOAT_FORMAT,
- "Utiliser le format float pour le pilote WASAPI, si pris en charge par votre périphérique audio."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_WASAPI_SH_BUFFER_LENGTH,
- "Taille de la mémoire tampon intermédiaire (en images) lors de l'utilisation du pilote WASAPI en mode partagé."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_SYNC,
- "Synchroniser l'audio. Recommandé."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_BUTTON_AXIS_THRESHOLD,
- "À quelle distance un axe doit être incliné pour entraîner une pression de touche."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_BIND_TIMEOUT,
- "Nombre de secondes à attendre avant de passer à l'assignation de touche suivante."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_BIND_HOLD,
- "Nombre de secondes à maintenir une touche avant qu'elle ne soit assignée."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_TURBO_PERIOD,
- "Décrit la durée après laquelle une touche est en mode turbo. Les nombres sont décrits en images."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_DUTY_CYCLE,
- "Décrit la durée après laquelle une touche en mode turbo se répète. Les nombres sont décrits en images."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_VSYNC,
- "Synchronise la sortie vidéo de la carte graphique avec la fréquence de rafraîchissement de l'écran. Recommandé."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_ALLOW_ROTATE,
- "Autoriser les cœurs à définir la rotation. Si désactivée, cette option ignorera les demandes de rotation. Utile pour les configurations où l'on fait pivoter l'écran manuellement."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_DUMMY_ON_CORE_SHUTDOWN,
- "Certains cœurs ont une fonctionnalité d'extinction. Si activée, cette option empêchera le cœur de fermer RetroArch. À la place, un cœur factice sera chargé."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHECK_FOR_MISSING_FIRMWARE,
- "Vérifier que tous les firmwares requis sont présents avant de tenter de charger le contenu."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_REFRESH_RATE,
- "Renseigner la fréquence de rafraîchissement vertical actuelle de votre écran. Elle sera utilisée pour calculer un débit audio approprié.\n"
- "REMARQUE : Cette option sera ignorée si 'Vidéo sur plusieurs fils d'exécution' est activé."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_ENABLE,
- "Détermine si la sortie audio est activée."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_MAX_TIMING_SKEW,
- "Variation maximale du débit audio. Augmenter cette valeur permet des changements très importants dans le timing en échange d'un pitch audio inexact (par exemple, lors de l'exécution de cœurs PAL sur des écrans NTSC)."
- )
-MSG_HASH(
- MSG_FAILED,
- "échoué(e)"
- )
-MSG_HASH(
- MSG_SUCCEEDED,
- "avec succès"
- )
-MSG_HASH(
- MSG_DEVICE_NOT_CONFIGURED,
- "non configuré(e)"
- )
-MSG_HASH(
- MSG_DEVICE_NOT_CONFIGURED_FALLBACK,
- "non configuré(e), utilisation de l'état de secours"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST,
- "Liste de pointeurs dans la base de données"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_DEVELOPER,
- "Base de données - Filtre : Développeur"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_PUBLISHER,
- "Base de données - Filtre : Éditeur"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DISABLED,
- "Désactivé"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ENABLED,
- "Activé"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONTENT_HISTORY_PATH,
- "Emplacement de l'historique du contenu"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_ORIGIN,
- "Base de données - Filtre : Origine"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_FRANCHISE,
- "Base de données - Filtre : Franchise"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_ESRB_RATING,
- "Base de données - Filtre : Classification ESRB"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_ELSPA_RATING,
- "Base de données - Filtre : Classification ELSPA"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_PEGI_RATING,
- "Base de données - Filtre : Classification PEGI"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_CERO_RATING,
- "Base de données - Filtre : Classification CERO"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_BBFC_RATING,
- "Base de données - Filtre : Classification BBFC"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_MAX_USERS,
- "Base de données - Filtre : Nombre d'utilisateurs maximum"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_RELEASEDATE_BY_MONTH,
- "Base de données - Filtre : Date de sortie par mois"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_RELEASEDATE_BY_YEAR,
- "Base de données - Filtre : Date de sortie par année"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_EDGE_MAGAZINE_ISSUE,
- "Base de données - Filtre : Numéro de magazine Edge"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_EDGE_MAGAZINE_RATING,
- "Base de données - Filtre : Note du magazine Edge"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_DATABASE_INFO,
- "Informations de la base de données"
- )
-MSG_HASH(
- MSG_WIFI_SCAN_COMPLETE,
- "Recherche Wi-Fi terminé."
- )
-MSG_HASH(
- MSG_SCANNING_WIRELESS_NETWORKS,
- "Recherche de réseaux sans fil..."
- )
-MSG_HASH(
- MSG_NETPLAY_LAN_SCAN_COMPLETE,
- "Recherche de jeu en réseau terminé."
- )
-MSG_HASH(
- MSG_NETPLAY_LAN_SCANNING,
- "Recherche d'hôtes de jeu en réseau..."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_PAUSE_NONACTIVE,
- "Mettre le jeu en pause lorsque RetroArch n'est pas au premier plan."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_DISABLE_COMPOSITION,
- "Le gestionnaire de fenêtres utilise la composition pour appliquer des effets visuels et détecter les fenêtres qui ne répondent pas, entre autres."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_HISTORY_LIST_ENABLE,
- "Conserver une liste de lecture des jeux, images, musiques et vidéos récemment utilisés."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CONTENT_HISTORY_SIZE,
- "Limiter le nombre d'entrées dans la liste de lecture des jeux, images, musiques et vidéos récemment utilisés."
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_UNIFIED_MENU_CONTROLS,
- "Contrôles du menu unifiés"
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_UNIFIED_MENU_CONTROLS,
- "Utilisez les mêmes touches pour le menu et le jeu. S'applique au clavier."
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUIT_PRESS_TWICE,
- "Appuyer sur quitter deux fois"
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_QUIT_PRESS_TWICE,
- "Appuyez deux fois sur la touche de raccourci Quitter pour quitter RetroArch."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_FONT_ENABLE,
- "Affiche les messages à l'écran."
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETWORK_USER_REMOTE_ENABLE,
- "Utilisateur %d en réseau"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BATTERY_LEVEL_ENABLE,
- "Afficher le niveau de la batterie"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_SHOW_SUBLABELS,
- "Afficher la description des éléments dans le menu"
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_SHOW_SUBLABELS,
- "Affiche des informations supplémentaires pour l'entrée actuellement sélectionnée dans le menu."
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SELECT_FILE,
- "Sélectionner un fichier"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SELECT_FROM_PLAYLIST,
- "Sélectionner depuis une playlist"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_FILTER,
- "Filtre"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SCALE,
- "Échelle"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_START_WHEN_LOADED,
- "Le jeu en réseau débutera quand un contenu sera chargé."
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_LOAD_CONTENT_MANUALLY,
- "Impossible de trouver un cœur ou un jeu adapté, veuillez charger le contenu manuellement."
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BROWSE_URL_LIST,
- "Parcourir l'URL"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BROWSE_URL,
- "Emplacement de l'URL"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BROWSE_START,
- "Démarrer"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_BOKEH,
- "Bokeh"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_SNOWFLAKE,
- "Flocon de neige"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_REFRESH_ROOMS,
- "Rafraîchir la liste des salons"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_ROOM_NICKNAME,
- "Pseudo : %s"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_ROOM_NICKNAME_LAN,
- "Pseudo (lan) : %s"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_COMPAT_CONTENT_FOUND,
- "Contenu compatible trouvé"
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_CROP_OVERSCAN,
- "Tronque quelques pixels sur les bords de l'image habituellement laissés vides par les développeurs, qui contiennent parfois aussi des pixels parasites."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SMOOTH,
- "Ajoute un léger flou à l'image pour atténuer le contour des pixels bruts. Cette option a très peu d'impact sur les performances."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_FILTER,
- "Applique un filtre vidéo produit par le processeur.\n"
- "REMARQUE : Peut avoir un coût élevé pour les performances. Certains filtres vidéo ne peuvent fonctionner qu'avec les cœurs utilisant les modes de couleurs 32 bits ou 16 bits."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEEVOS_USERNAME,
- "Entrez le nom d'utilisateur de votre compte RetroSuccès (RetroAchievements)."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEEVOS_PASSWORD,
- "Entrez le mot de passe de votre compte RetroSuccès (RetroAchievements)."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_NICKNAME,
- "Entrez votre pseudo ici. Il sera utilisé pour les sessions de jeu en réseau, entre autres."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_POST_FILTER_RECORD,
- "Capture l'image après l'application des filtres (mais pas des shaders). Votre vidéo sera aussi élégante que ce que vous voyez sur votre écran."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CORE_LIST,
- "Sélectionner le cœur à utiliser."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_START_CORE,
- "Démarrer le cœur sans contenu."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_DOWNLOAD_CORE,
- "Installer un cœur depuis la mise à jour en ligne."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_SIDELOAD_CORE_LIST,
- "Installer ou restaurer un cœur depuis le dossier de téléchargements."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_LOAD_CONTENT_LIST,
- "Sélectionner le contenu à démarrer."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_NETWORK_INFORMATION,
- "Affiche la ou les interfaces réseau et les adresses IP associées."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_SYSTEM_INFORMATION,
- "Affiche les informations spécifiques à l'appareil."
- )
+ MENU_ENUM_SUBLABEL_SHOW_HIDDEN_FILES,
+ "Affiche les fichiers/dossiers cachés dans le navigateur de fichiers."
+ )
#ifdef HAVE_LAKKA
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUIT_RETROARCH,
- "Redémarrer le programme."
- )
+ MENU_ENUM_SUBLABEL_SSH_ENABLE,
+ "Utiliser SSH pour accéder à la ligne de commande à distance."
+ )
+#endif
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SUSPEND_SCREENSAVER_ENABLE,
+ "Empêche l'économiseur d'écran de votre système de s'activer."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_WINDOW_SCALE,
+ "Définit la taille de la fenêtre par rapport à la taille d'affichage du cœur. Alternativement, vous pouvez définir une largeur et une hauteur de fenêtre ci-dessous pour une taille de fenêtre fixe."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_USER_LANGUAGE,
+ "Définir la langue de l'interface."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_BLACK_FRAME_INSERTION,
+ "Insère une image noire entre chaque image. Utile pour les utilisateurs d'écrans 120Hz qui souhaitent jouer à du contenu 60Hz sans rémanence."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_FRAME_DELAY,
+ "Réduit la latence au détriment d'un risque accru de saccades visuelles. Ajoute un délai après la synchronisation verticale V-Sync (en ms)."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_DELAY,
+ "Retarde le chargement automatique des shaders (en ms). Peut résoudre des problèmes graphiques lors de l'utilisation de logiciels de 'capture d'écran'."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_HARD_SYNC_FRAMES,
+ "Définit le nombre d'images que le processeur peut exécuter avant le processeur graphique lors de l'utilisation de la 'Synchronisation matérielle du processeur graphique'."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_MAX_SWAPCHAIN_IMAGES,
+ "Indique au pilote vidéo d'utiliser explicitement le mode de mise en mémoire tampon spécifié."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_MONITOR_INDEX,
+ "Sélectionner l'écran à utiliser."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_REFRESH_RATE_AUTO,
+ "Fréquence de rafraîchissement précise estimée pour l'écran en Hz."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_REFRESH_RATE_POLLED,
+ "Fréquence de rafraîchissement détectée par le pilote d'affichage."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_SETTINGS,
+ "Modifier les réglages de sortie vidéo."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_WIFI_SETTINGS,
+ "Analyser les réseaux sans fil et établir la connexion."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_HELP_LIST,
+ "En savoir plus sur le fonctionnement du programme."
+ )
+MSG_HASH(
+ MSG_ADDED_TO_FAVORITES,
+ "Ajouté aux favoris"
+ )
+MSG_HASH(
+ MSG_ADD_TO_FAVORITES_FAILED,
+ "Erreur de l'ajout aux favoris : liste de lecture pleine"
+ )
+MSG_HASH(
+ MSG_SET_CORE_ASSOCIATION,
+ "Cœur associé : "
+ )
+MSG_HASH(
+ MSG_RESET_CORE_ASSOCIATION,
+ "L'association au cœur a été réinitialisée pour l'entrée dans la liste de lecture."
+ )
+MSG_HASH(
+ MSG_APPENDED_DISK,
+ "Disque ajouté"
+ )
+MSG_HASH(
+ MSG_APPLICATION_DIR,
+ "Dossier de l'application"
+ )
+MSG_HASH(
+ MSG_APPLYING_CHEAT,
+ "Appliquer les changements aux cheats."
+ )
+MSG_HASH(
+ MSG_APPLYING_SHADER,
+ "Appliquer le shader"
+ )
+MSG_HASH(
+ MSG_AUDIO_MUTED,
+ "Son coupé."
+ )
+MSG_HASH(
+ MSG_AUDIO_UNMUTED,
+ "Son réactivé."
+ )
+MSG_HASH(
+ MSG_AUTOCONFIG_FILE_ERROR_SAVING,
+ "Erreur lors de l'enregistrement du fichier de configuration automatique."
+ )
+MSG_HASH(
+ MSG_AUTOCONFIG_FILE_SAVED_SUCCESSFULLY,
+ "Fichier de configuration automatique enregistré avec succès."
+ )
+MSG_HASH(
+ MSG_AUTOSAVE_FAILED,
+ "Impossible d'initialiser l'enregistrement automatique."
+ )
+MSG_HASH(
+ MSG_AUTO_SAVE_STATE_TO,
+ "Sauvegarde instantanée automatique vers"
+ )
+MSG_HASH(
+ MSG_BLOCKING_SRAM_OVERWRITE,
+ "Empêcher l'écrasement de la mémoire SRAM"
+ )
+MSG_HASH(
+ MSG_BRINGING_UP_COMMAND_INTERFACE_ON_PORT,
+ "Appeler l'interface de commande sur le port"
+ )
+MSG_HASH(
+ MSG_BYTES,
+ "octets"
+ )
+MSG_HASH(
+ MSG_CANNOT_INFER_NEW_CONFIG_PATH,
+ "Impossible de déduire le nouvel emplacement du fichier de configuration. Utilisation de l'heure actuelle."
+ )
+MSG_HASH(
+ MSG_CHEEVOS_HARDCORE_MODE_ENABLE,
+ "Mode Hardcore activé pour les succès, la sauvegarde instantanée et le rembobinage ont été désactivés."
+ )
+MSG_HASH(
+ MSG_COMPARING_WITH_KNOWN_MAGIC_NUMBERS,
+ "Comparaison avec les nombres magiques connus..."
+ )
+MSG_HASH(
+ MSG_COMPILED_AGAINST_API,
+ "Compilé avec l'API"
+ )
+MSG_HASH(
+ MSG_CONFIG_DIRECTORY_NOT_SET,
+ "Dossier de configuration non défini. Impossible de sauvegarder la nouvelle configuration."
+ )
+MSG_HASH(
+ MSG_CONNECTED_TO,
+ "Connecté à"
+ )
+MSG_HASH(
+ MSG_CONTENT_CRC32S_DIFFER,
+ "Le CRC32 du contenu est différent. Impossible d'utiliser des jeux non-identiques."
+ )
+MSG_HASH(
+ MSG_CONTENT_LOADING_SKIPPED_IMPLEMENTATION_WILL_DO_IT,
+ "Chargement du contenu ignoré. L'implémentation va le charger elle-même."
+ )
+MSG_HASH(
+ MSG_CORE_DOES_NOT_SUPPORT_SAVESTATES,
+ "Le cœur ne prend pas en charge les sauvegardes instantanées."
+ )
+MSG_HASH(
+ MSG_CORE_OPTIONS_FILE_CREATED_SUCCESSFULLY,
+ "Fichier d'options du cœur créé avec succès."
+ )
+MSG_HASH(
+ MSG_COULD_NOT_FIND_ANY_NEXT_DRIVER,
+ "Impossible de trouver un pilote suivant."
+ )
+MSG_HASH(
+ MSG_COULD_NOT_FIND_COMPATIBLE_SYSTEM,
+ "Impossible de trouver un système compatible."
+ )
+MSG_HASH(
+ MSG_COULD_NOT_FIND_VALID_DATA_TRACK,
+ "Impossible de trouver une piste de données valide"
+ )
+MSG_HASH(
+ MSG_COULD_NOT_OPEN_DATA_TRACK,
+ "Impossible d'ouvrir la piste de données."
+ )
+MSG_HASH(
+ MSG_COULD_NOT_READ_CONTENT_FILE,
+ "Impossible de lire le fichier de contenu."
+ )
+MSG_HASH(
+ MSG_COULD_NOT_READ_MOVIE_HEADER,
+ "Impossible de lire l'en-tête du film."
+ )
+MSG_HASH(
+ MSG_COULD_NOT_READ_STATE_FROM_MOVIE,
+ "Impossible de lire l'état du film."
+ )
+MSG_HASH(
+ MSG_CRC32_CHECKSUM_MISMATCH,
+ "Incohérence de la somme de contrôle CRC32 entre le fichier de contenu et sa somme de contrôle enregistrée dans l'en-tête du fichier de relecture. Replay très susceptible de se désynchroniser lors de la lecture."
+ )
+MSG_HASH(
+ MSG_CUSTOM_TIMING_GIVEN,
+ "Temps personnalisé attribué"
+ )
+MSG_HASH(
+ MSG_DECOMPRESSION_ALREADY_IN_PROGRESS,
+ "Décompression déjà en cours."
+ )
+MSG_HASH(
+ MSG_DECOMPRESSION_FAILED,
+ "Échec à la décompression."
+ )
+MSG_HASH(
+ MSG_DETECTED_VIEWPORT_OF,
+ "Taille de la fenêtre d'affichage détectée de"
+ )
+MSG_HASH(
+ MSG_DID_NOT_FIND_A_VALID_CONTENT_PATCH,
+ "Impossible de trouver un patch de contenu valide."
+ )
+MSG_HASH(
+ MSG_DISCONNECT_DEVICE_FROM_A_VALID_PORT,
+ "Déconnecter le périphérique d'un port valide."
+ )
+MSG_HASH(
+ MSG_DISK_CLOSED,
+ "Fermé"
+ )
+MSG_HASH(
+ MSG_DISK_EJECTED,
+ "Éjecté"
+ )
+MSG_HASH(
+ MSG_DOWNLOADING,
+ "Téléchargement"
+ )
+MSG_HASH(
+ MSG_INDEX_FILE,
+ "de l'index"
+ )
+MSG_HASH(
+ MSG_DOWNLOAD_FAILED,
+ "Échec du téléchargement"
+ )
+MSG_HASH(
+ MSG_ERROR,
+ "Erreur"
+ )
+MSG_HASH(
+ MSG_ERROR_LIBRETRO_CORE_REQUIRES_CONTENT,
+ "Le cœur Libretro nécessite du contenu, mais aucun n'a été fourni."
+ )
+MSG_HASH(
+ MSG_ERROR_LIBRETRO_CORE_REQUIRES_SPECIAL_CONTENT,
+ "Le cœur Libretro nécessite un contenu spécial, mais aucun n'a été fourni."
+ )
+MSG_HASH(
+ MSG_ERROR_LIBRETRO_CORE_REQUIRES_VFS,
+ "Le cœur ne prend pas en charge le VFS, et le chargement à partir d'une copie locale a échoué"
+ )
+MSG_HASH(
+ MSG_ERROR_PARSING_ARGUMENTS,
+ "Erreur lors de l'analyse des arguments."
+ )
+MSG_HASH(
+ MSG_ERROR_SAVING_CORE_OPTIONS_FILE,
+ "Erreur lors de l'enregistrement du fichier d'options du cœur."
+ )
+MSG_HASH(
+ MSG_ERROR_SAVING_REMAP_FILE,
+ "Erreur lors de l'enregistrement du fichier de remappage."
+ )
+MSG_HASH(
+ MSG_ERROR_REMOVING_REMAP_FILE,
+ "Erreur lors de la suppression du fichier de remappage."
+ )
+MSG_HASH(
+ MSG_ERROR_SAVING_SHADER_PRESET,
+ "Erreur lors de l'enregistrement des préréglages de shaders."
+ )
+MSG_HASH(
+ MSG_EXTERNAL_APPLICATION_DIR,
+ "Dossier d'applications externes"
+ )
+MSG_HASH(
+ MSG_EXTRACTING,
+ "Extraction"
+ )
+MSG_HASH(
+ MSG_EXTRACTING_FILE,
+ "Extraction du fichier"
+ )
+MSG_HASH(
+ MSG_FAILED_SAVING_CONFIG_TO,
+ "Erreur lors de l'enregistrement de la configuration vers"
+ )
+MSG_HASH(
+ MSG_FAILED_TO,
+ "Échec de"
+ )
+MSG_HASH(
+ MSG_FAILED_TO_ACCEPT_INCOMING_SPECTATOR,
+ "Échec à l'accueil du spectateur entrant."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_ALLOCATE_MEMORY_FOR_PATCHED_CONTENT,
+ "Échec d'allocation de mémoire pour le contenu patché..."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_APPLY_SHADER,
+ "Échec à l'application du shader."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_APPLY_SHADER_PRESET,
+ "Échec à l'application du préréglage de shaders :"
+ )
+MSG_HASH(
+ MSG_FAILED_TO_BIND_SOCKET,
+ "Échec de l'attribution du socket."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_CREATE_THE_DIRECTORY,
+ "Échec à la création du dossier."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_EXTRACT_CONTENT_FROM_COMPRESSED_FILE,
+ "Échec de l'extraction du contenu depuis le fichier compressé."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_GET_NICKNAME_FROM_CLIENT,
+ "Échec à l'obtention du pseudo du client."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_LOAD,
+ "Échec de chargement."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_LOAD_CONTENT,
+ "Échec de chargement du contenu."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_LOAD_MOVIE_FILE,
+ "Échec de chargement du fichier vidéo."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_LOAD_OVERLAY,
+ "Échec de chargement de la surimpression."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_LOAD_STATE,
+ "Échec de chargement de la sauvegarde instantanée depuis"
+ )
+MSG_HASH(
+ MSG_FAILED_TO_OPEN_LIBRETRO_CORE,
+ "Échec de l'ouverture du cœur Libretro"
+ )
+MSG_HASH(
+ MSG_FAILED_TO_PATCH,
+ "Échec du patch"
+ )
+MSG_HASH(
+ MSG_FAILED_TO_RECEIVE_HEADER_FROM_CLIENT,
+ "Échec de l'obtention de l'entête depuis le client."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_RECEIVE_NICKNAME,
+ "Échec de l'obtention du pseudo."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_RECEIVE_NICKNAME_FROM_HOST,
+ "Échec de l'obtention du pseudo depuis l'hôte."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_RECEIVE_NICKNAME_SIZE_FROM_HOST,
+ "Échec de l'obtention de la taille du pseudo depuis l'hôte."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_RECEIVE_SRAM_DATA_FROM_HOST,
+ "Échec de l'obtention des données SRAM depuis l'hôte."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_REMOVE_DISK_FROM_TRAY,
+ "Échec de l'éjection du disque depuis le lecteur."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_REMOVE_TEMPORARY_FILE,
+ "Échec de la suppression du fichier temporaire"
+ )
+MSG_HASH(
+ MSG_FAILED_TO_SAVE_SRAM,
+ "Échec de la sauvegarde de la SRAM"
+ )
+MSG_HASH(
+ MSG_FAILED_TO_SAVE_STATE_TO,
+ "Échec de la sauvegarde instantanée vers"
+ )
+MSG_HASH(
+ MSG_FAILED_TO_SEND_NICKNAME,
+ "Échec de l'envoi du pseudo."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_SEND_NICKNAME_SIZE,
+ "Échec de l'envoi de la taille du pseudo."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_SEND_NICKNAME_TO_CLIENT,
+ "Échec de l'envoi du pseudo vers le client."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_SEND_NICKNAME_TO_HOST,
+ "Échec de l'envoi du pseudo vers l'hôte."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_SEND_SRAM_DATA_TO_CLIENT,
+ "Échec de l'envoi des données SRAM vers le client."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_START_AUDIO_DRIVER,
+ "Échec de démarrage du pilote audio. Continuera sans le son."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_START_MOVIE_RECORD,
+ "Échec du démarrage de l'enregistrement vidéo."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_START_RECORDING,
+ "Échec du démarrage de l'enregistrement."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_TAKE_SCREENSHOT,
+ "Échec de la capture d'écran."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_UNDO_LOAD_STATE,
+ "Échec de l'annulation du chargement d'une sauvegarde instantanée."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_UNDO_SAVE_STATE,
+ "Échec de l'annulation d'une sauvegarde instantanée."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_UNMUTE_AUDIO,
+ "Échec de la réactivation du son."
+ )
+MSG_HASH(
+ MSG_FATAL_ERROR_RECEIVED_IN,
+ "Erreur fatale reçue dans"
+ )
+MSG_HASH(
+ MSG_FILE_NOT_FOUND,
+ "Fichier non trouvé"
+ )
+MSG_HASH(
+ MSG_FOUND_AUTO_SAVESTATE_IN,
+ "Sauvegarde instantanée automatique trouvée dans"
+ )
+MSG_HASH(
+ MSG_FOUND_DISK_LABEL,
+ "Label de disque trouvé"
+ )
+MSG_HASH(
+ MSG_FOUND_FIRST_DATA_TRACK_ON_FILE,
+ "Première piste de données trouvée dans le fichier"
+ )
+MSG_HASH(
+ MSG_FOUND_LAST_STATE_SLOT,
+ "Dernier emplacement de sauvegarde instantanée trouvé"
+ )
+MSG_HASH(
+ MSG_FOUND_SHADER,
+ "Shader trouvé"
+ )
+MSG_HASH(
+ MSG_FRAMES,
+ "Images"
+ )
+MSG_HASH(
+ MSG_GAME_SPECIFIC_CORE_OPTIONS_FOUND_AT,
+ "Options par jeu : options de cœur spécifiques au jeu trouvées dans"
+ )
+MSG_HASH(
+ MSG_GOT_INVALID_DISK_INDEX,
+ "Numéro de disque non valide."
+ )
+MSG_HASH(
+ MSG_GRAB_MOUSE_STATE,
+ "État de la capture de la souris"
+ )
+MSG_HASH(
+ MSG_GAME_FOCUS_ON,
+ "Jeu au premier plan"
+ )
+MSG_HASH(
+ MSG_GAME_FOCUS_OFF,
+ "Jeu en arrière-plan"
+ )
+MSG_HASH(
+ MSG_HW_RENDERED_MUST_USE_POSTSHADED_RECORDING,
+ "Le cœur Libretro utilise le rendu matériel. Doit également utiliser les filtres vidéo lors de l'enregistrement."
+ )
+MSG_HASH(
+ MSG_INFLATED_CHECKSUM_DID_NOT_MATCH_CRC32,
+ "La somme de contrôle du fichier décompressé ne correspond pas au CRC32."
+ )
+MSG_HASH(
+ MSG_INPUT_CHEAT,
+ "Saisir le cheat"
+ )
+MSG_HASH(
+ MSG_INPUT_CHEAT_FILENAME,
+ "Saisir le nom de fichier de cheats"
+ )
+MSG_HASH(
+ MSG_INPUT_PRESET_FILENAME,
+ "Saisir le nom de fichier de préréglages"
+ )
+MSG_HASH(
+ MSG_INPUT_RENAME_ENTRY,
+ "Entrez le nouveau nom"
+ )
+MSG_HASH(
+ MSG_INTERFACE,
+ "Interface"
+ )
+MSG_HASH(
+ MSG_INTERNAL_STORAGE,
+ "Stockage interne"
+ )
+MSG_HASH(
+ MSG_REMOVABLE_STORAGE,
+ "Stockage amovible"
+ )
+MSG_HASH(
+ MSG_INVALID_NICKNAME_SIZE,
+ "Taille du pseudo non valide."
+ )
+MSG_HASH(
+ MSG_IN_BYTES,
+ "en octets "
+ )
+MSG_HASH(
+ MSG_IN_GIGABYTES,
+ "en gigaoctets "
+ )
+MSG_HASH(
+ MSG_IN_MEGABYTES,
+ "en mégaoctets "
+ )
+MSG_HASH(
+ MSG_LIBRETRO_ABI_BREAK,
+ "est compilé avec une version différente de l'implémentation de libretro actuelle."
+ )
+MSG_HASH(
+ MSG_LIBRETRO_FRONTEND,
+ "Frontend pour libretro"
+ )
+MSG_HASH(
+ MSG_LOADED_STATE_FROM_SLOT,
+ "Sauvegarde instantanée chargée depuis l'emplacement #%d."
+ )
+MSG_HASH(
+ MSG_LOADED_STATE_FROM_SLOT_AUTO,
+ "Sauvegarde instantanée chargée depuis l'emplacement #-1 (auto)."
+ )
+MSG_HASH(
+ MSG_LOADING,
+ "Chargement"
+ )
+MSG_HASH(
+ MSG_FIRMWARE,
+ "Un ou plusieurs fichiers de firmware sont manquants"
+ )
+MSG_HASH(
+ MSG_LOADING_CONTENT_FILE,
+ "Chargement du fichier de contenu"
+ )
+MSG_HASH(
+ MSG_LOADING_HISTORY_FILE,
+ "Chargement du fichier d'historique"
+ )
+MSG_HASH(
+ MSG_LOADING_FAVORITES_FILE,
+ "Chargement du fichier des favoris"
+ )
+MSG_HASH(
+ MSG_LOADING_STATE,
+ "Chargement de la sauvegarde instantanée"
+ )
+MSG_HASH(
+ MSG_MEMORY,
+ "Mémoire"
+ )
+MSG_HASH(
+ MSG_MOVIE_FILE_IS_NOT_A_VALID_BSV1_FILE,
+ "Le fichier vidéo de relecture n'est pas un fichier BSV1 valide."
+ )
+MSG_HASH(
+ MSG_MOVIE_FORMAT_DIFFERENT_SERIALIZER_VERSION,
+ "Le format de la vidéo de relecture semble avoir une version différente du sérialiseur. Échec très probable."
+ )
+MSG_HASH(
+ MSG_MOVIE_PLAYBACK_ENDED,
+ "La relecture des touches pressées est terminée."
+ )
+MSG_HASH(
+ MSG_MOVIE_RECORD_STOPPED,
+ "Arrêt de l'enregistrement vidéo."
+ )
+MSG_HASH(
+ MSG_NETPLAY_FAILED,
+ "Échec de l'initialisation du jeu en réseau."
+ )
+MSG_HASH(
+ MSG_NO_CONTENT_STARTING_DUMMY_CORE,
+ "Aucun contenu, chargement d'un cœur factice."
+ )
+MSG_HASH(
+ MSG_NO_SAVE_STATE_HAS_BEEN_OVERWRITTEN_YET,
+ "Aucune sauvegarde instantanée n'a encore été écrasé."
+ )
+MSG_HASH(
+ MSG_NO_STATE_HAS_BEEN_LOADED_YET,
+ "Aucune sauvegarde instantanée n'a encore été chargée."
+ )
+MSG_HASH(
+ MSG_OVERRIDES_ERROR_SAVING,
+ "Erreur lors de l'enregistrement du fichier de remplacement de configuration."
+ )
+MSG_HASH(
+ MSG_OVERRIDES_SAVED_SUCCESSFULLY,
+ "Fichier de remplacement de configuration enregistré avec succès."
+ )
+MSG_HASH(
+ MSG_PAUSED,
+ "En pause."
+ )
+MSG_HASH(
+ MSG_PROGRAM,
+ "RetroArch"
+ )
+MSG_HASH(
+ MSG_READING_FIRST_DATA_TRACK,
+ "Lecture de la première piste de données..."
+ )
+MSG_HASH(
+ MSG_RECEIVED,
+ "reçu"
+ )
+MSG_HASH(
+ MSG_RECORDING_TERMINATED_DUE_TO_RESIZE,
+ "Enregistrement interrompu à cause du redimensionnement."
+ )
+MSG_HASH(
+ MSG_RECORDING_TO,
+ "Enregistrement vers"
+ )
+MSG_HASH(
+ MSG_REDIRECTING_CHEATFILE_TO,
+ "Redirection du fichier de cheats vers"
+ )
+MSG_HASH(
+ MSG_REDIRECTING_SAVEFILE_TO,
+ "Redirection du fichier de sauvegarde vers"
+ )
+MSG_HASH(
+ MSG_REMAP_FILE_SAVED_SUCCESSFULLY,
+ "Fichier de remappage enregistré avec succès."
+ )
+MSG_HASH(
+ MSG_REMAP_FILE_REMOVED_SUCCESSFULLY,
+ "Fichier de remappage supprimé avec succès."
+ )
+MSG_HASH(
+ MSG_REMOVED_DISK_FROM_TRAY,
+ "Disque retiré du lecteur."
+ )
+MSG_HASH(
+ MSG_REMOVING_TEMPORARY_CONTENT_FILE,
+ "Suppression du fichier de contenu temporaire"
+ )
+MSG_HASH(
+ MSG_RESET,
+ "Réinitialisation"
+ )
+MSG_HASH(
+ MSG_RESTARTING_RECORDING_DUE_TO_DRIVER_REINIT,
+ "Redémarrage de l'enregistrement à cause de la réinitialisation du pilote."
+ )
+MSG_HASH(
+ MSG_RESTORED_OLD_SAVE_STATE,
+ "Ancienne sauvegarde instantanée restaurée."
+ )
+MSG_HASH(
+ MSG_RESTORING_DEFAULT_SHADER_PRESET_TO,
+ "Shaders : restauration des préréglages de shaders par défaut vers"
+ )
+MSG_HASH(
+ MSG_REVERTING_SAVEFILE_DIRECTORY_TO,
+ "Rétablissement du dossier de sauvegarde vers"
+ )
+MSG_HASH(
+ MSG_REVERTING_SAVESTATE_DIRECTORY_TO,
+ "Rétablissement du dossier de sauvegarde instantanée vers"
+ )
+MSG_HASH(
+ MSG_REWINDING,
+ "Rembobinage."
+ )
+MSG_HASH(
+ MSG_REWIND_INIT,
+ "Initialisation de la mémoire tampon de rembobinage avec la taille"
+ )
+MSG_HASH(
+ MSG_REWIND_INIT_FAILED,
+ "Échec de l'initialisation de la mémoire tampon de rembobinage. Le rembobinage sera désactivé."
+ )
+MSG_HASH(
+ MSG_REWIND_INIT_FAILED_THREADED_AUDIO,
+ "L'implementation utilise plusieurs fils d'exécution pour l'audio. Incompatible avec le rembobinage."
+ )
+MSG_HASH(
+ MSG_REWIND_REACHED_END,
+ "Fin de la mémoire tampon de rembobinage atteinte."
+ )
+MSG_HASH(
+ MSG_SAVED_NEW_CONFIG_TO,
+ "Nouvelle configuration enregistrée vers"
+ )
+MSG_HASH(
+ MSG_SAVED_STATE_TO_SLOT,
+ "Sauvegarde instantanée enregistrée vers l'emplacement #%d."
+ )
+MSG_HASH(
+ MSG_SAVED_STATE_TO_SLOT_AUTO,
+ "Sauvegarde instantanée enregistrée vers l'emplacement #-1 (auto)."
+ )
+MSG_HASH(
+ MSG_SAVED_SUCCESSFULLY_TO,
+ "Enregistré avec succès vers"
+ )
+MSG_HASH(
+ MSG_SAVING_RAM_TYPE,
+ "Enregistrement du type de RAM"
+ )
+MSG_HASH(
+ MSG_SAVING_STATE,
+ "Sauvegarde instantanée en cours"
+ )
+MSG_HASH(
+ MSG_SCANNING,
+ "Analyse en cours"
+ )
+MSG_HASH(
+ MSG_SCANNING_OF_DIRECTORY_FINISHED,
+ "Analyse du dossier terminée"
+ )
+MSG_HASH(
+ MSG_SENDING_COMMAND,
+ "Envoi de la commande"
+ )
+MSG_HASH(
+ MSG_SEVERAL_PATCHES_ARE_EXPLICITLY_DEFINED,
+ "Plusieurs patchs sont explicitement définis, tous sont ignorés..."
+ )
+MSG_HASH(
+ MSG_SHADER,
+ "Shader"
+ )
+MSG_HASH(
+ MSG_SHADER_PRESET_SAVED_SUCCESSFULLY,
+ "Préréglages de shaders enregistrés avec succès."
+ )
+MSG_HASH(
+ MSG_SKIPPING_SRAM_LOAD,
+ "Chargement de la SRAM ignoré."
+ )
+MSG_HASH(
+ MSG_SLOW_MOTION,
+ "Ralenti."
+ )
+MSG_HASH(
+ MSG_FAST_FORWARD,
+ "Avance rapide."
+ )
+MSG_HASH(
+ MSG_SLOW_MOTION_REWIND,
+ "Rembobinage au ralenti."
+ )
+MSG_HASH(
+ MSG_SRAM_WILL_NOT_BE_SAVED,
+ "La SRAM ne sera pas sauvegardée."
+ )
+MSG_HASH(
+ MSG_STARTING_MOVIE_PLAYBACK,
+ "Démarrage de la lecture vidéo."
+ )
+MSG_HASH(
+ MSG_STARTING_MOVIE_RECORD_TO,
+ "Démarrage de l'enregistrement vidéo vers"
+ )
+MSG_HASH(
+ MSG_STATE_SIZE,
+ "Taille de la sauvegarde instantanée"
+ )
+MSG_HASH(
+ MSG_STATE_SLOT,
+ "Emplacement de la sauvegarde instantanée"
+ )
+MSG_HASH(
+ MSG_TAKING_SCREENSHOT,
+ "Capture d'écran."
+ )
+MSG_HASH(
+ MSG_SCREENSHOT_SAVED,
+ "Capture d'écran enregistrée"
+ )
+MSG_HASH(
+ MSG_ACHIEVEMENT_UNLOCKED,
+ "Succès débloqué"
+ )
+MSG_HASH(
+ MSG_CHANGE_THUMBNAIL_TYPE,
+ "Changer le type de miniatures"
+ )
+MSG_HASH(
+ MSG_NO_THUMBNAIL_AVAILABLE,
+ "Aucune miniature disponible"
+ )
+MSG_HASH(
+ MSG_PRESS_AGAIN_TO_QUIT,
+ "Appuyez à nouveau pour quitter..."
+ )
+MSG_HASH(
+ MSG_TO,
+ "vers"
+ )
+MSG_HASH(
+ MSG_UNDID_LOAD_STATE,
+ "Chargement de la sauvegarde instantanée annulé."
+ )
+MSG_HASH(
+ MSG_UNDOING_SAVE_STATE,
+ "Annulation de la sauvegarde instantanée"
+ )
+MSG_HASH(
+ MSG_UNKNOWN,
+ "Inconnu"
+ )
+MSG_HASH(
+ MSG_UNPAUSED,
+ "Réactivé."
+ )
+MSG_HASH(
+ MSG_UNRECOGNIZED_COMMAND,
+ "Commande non reconnue"
+ )
+MSG_HASH(
+ MSG_USING_CORE_NAME_FOR_NEW_CONFIG,
+ "Utilisation du nom du cœur pour la nouvelle configuration."
+ )
+MSG_HASH(
+ MSG_USING_LIBRETRO_DUMMY_CORE_RECORDING_SKIPPED,
+ "Utilisation du cœur libretro factice. Enregistrement ignoré."
+ )
+MSG_HASH(
+ MSG_VALUE_CONNECT_DEVICE_FROM_A_VALID_PORT,
+ "Connecter le périphérique depuis un port valide."
+ )
+MSG_HASH(
+ MSG_VALUE_DISCONNECTING_DEVICE_FROM_PORT,
+ "Déconnexion du périphérique depuis le port"
+ )
+MSG_HASH(
+ MSG_VALUE_REBOOTING,
+ "Redémarrage..."
+ )
+MSG_HASH(
+ MSG_VALUE_SHUTTING_DOWN,
+ "Arrêt en cours..."
+ )
+MSG_HASH(
+ MSG_VERSION_OF_LIBRETRO_API,
+ "Version de l'API libretro"
+ )
+MSG_HASH(
+ MSG_VIEWPORT_SIZE_CALCULATION_FAILED,
+ "Le calcul de la taille de la fenêtre d'affichage a échoué ! Continuera à utiliser les données brutes. Cela ne fonctionnera probablement pas correctement..."
+ )
+MSG_HASH(
+ MSG_VIRTUAL_DISK_TRAY,
+ "Lecteur de disque virtuel."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AUDIO_LATENCY,
+ "Latence audio désirée en millisecondes. Peut être ignorée si le pilote audio ne peut fournir une telle valeur."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AUDIO_MUTE,
+ "Désactiver/réactiver le son."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AUDIO_RATE_CONTROL_DELTA,
+ "Aide à atténuer les imperfections de timing lors de la synchronisation audio et vidéo. Sachez que si désactivé, une synchronisation correcte est presque impossible à obtenir."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CAMERA_ALLOW,
+ "Autoriser ou empêcher l'accès à la caméra par les cœurs."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_LOCATION_ALLOW,
+ "Autoriser ou empêcher l'accès aux services de localisation par les cœurs."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_INPUT_MAX_USERS,
+ "Nombre maximum d'utilisateurs pris en charge par RetroArch."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_INPUT_POLL_TYPE_BEHAVIOR,
+ "Influence la façon dont les touches pressées sont détectées dans RetroArch. Utiliser 'Précoce' ou 'Tardive' peut diminuer la latence, en fonction de votre configuration."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_INPUT_ALL_USERS_CONTROL_MENU,
+ "Permet à tous les utilisateurs de contrôler le menu. Si désactivé, seul l'utilisateur 1 peut contrôler le menu."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AUDIO_VOLUME,
+ "Volume sonore (en dB). 0 dB correspond au volume normal, et aucun gain n'est appliqué."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AUDIO_WASAPI_EXCLUSIVE_MODE,
+ "Autoriser le pilote WASAPI à prendre le contrôle exclusif du périphérique audio. Si désactivé, le mode partagé sera utilisé."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AUDIO_WASAPI_FLOAT_FORMAT,
+ "Utiliser le format float pour le pilote WASAPI, si pris en charge par votre périphérique audio."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AUDIO_WASAPI_SH_BUFFER_LENGTH,
+ "Taille de la mémoire tampon intermédiaire (en images) lors de l'utilisation du pilote WASAPI en mode partagé."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AUDIO_SYNC,
+ "Synchroniser l'audio. Recommandé."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_INPUT_BUTTON_AXIS_THRESHOLD,
+ "À quelle distance un axe doit être incliné pour entraîner une pression de touche."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_INPUT_BIND_TIMEOUT,
+ "Nombre de secondes à attendre avant de passer à l'assignation de touche suivante."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_INPUT_BIND_HOLD,
+ "Nombre de secondes à maintenir une touche avant qu'elle ne soit assignée."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_INPUT_TURBO_PERIOD,
+ "Décrit la durée après laquelle une touche est en mode turbo. Les nombres sont décrits en images."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_INPUT_DUTY_CYCLE,
+ "Décrit la durée après laquelle une touche en mode turbo se répète. Les nombres sont décrits en images."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_VSYNC,
+ "Synchronise la sortie vidéo de la carte graphique avec la fréquence de rafraîchissement de l'écran. Recommandé."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_ALLOW_ROTATE,
+ "Autorise les cœurs à définir la rotation. Si désactivé, les demandes de rotation seront ignorées. Utile pour les configurations où l'écran pivote manuellement."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_DUMMY_ON_CORE_SHUTDOWN,
+ "Certains cœurs ont une fonctionnalité d'extinction. Si activée, cette option empêchera le cœur de fermer RetroArch. À la place, un cœur factice sera chargé."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHECK_FOR_MISSING_FIRMWARE,
+ "Vérifie que tous les firmwares requis sont présents avant de tenter le chargement du contenu."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_REFRESH_RATE,
+ "Renseigne la fréquence de rafraîchissement vertical actuelle de votre écran. Elle sera utilisée pour calculer un débit audio approprié.\n"
+ "REMARQUE : Cette option sera ignorée si 'Vidéo sur plusieurs fils d'exécution' est activé."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AUDIO_ENABLE,
+ "Détermine si la sortie audio est activée."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AUDIO_MAX_TIMING_SKEW,
+ "Variation maximale du débit audio. Augmenter cette valeur permet des changements très importants dans le timing en échange d'un pitch audio inexact (par exemple, lors de l'exécution de cœurs PAL sur des écrans NTSC)."
+ )
+MSG_HASH(
+ MSG_FAILED,
+ "échoué"
+ )
+MSG_HASH(
+ MSG_SUCCEEDED,
+ "réussi"
+ )
+MSG_HASH(
+ MSG_DEVICE_NOT_CONFIGURED,
+ "non configuré"
+ )
+MSG_HASH(
+ MSG_DEVICE_NOT_CONFIGURED_FALLBACK,
+ "non configuré, utilisation de l'état de secours"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST,
+ "Liste de pointeurs dans la base de données"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_DEVELOPER,
+ "Base de données - Filtre : Développeur"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_PUBLISHER,
+ "Base de données - Filtre : Éditeur"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DISABLED,
+ "Désactivé"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_ENABLED,
+ "Activé"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_CONTENT_HISTORY_PATH,
+ "Emplacement de l'historique du contenu"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_ORIGIN,
+ "Base de données - Filtre : Origine"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_FRANCHISE,
+ "Base de données - Filtre : Franchise"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_ESRB_RATING,
+ "Base de données - Filtre : Classification ESRB"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_ELSPA_RATING,
+ "Base de données - Filtre : Classification ELSPA"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_PEGI_RATING,
+ "Base de données - Filtre : Classification PEGI"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_CERO_RATING,
+ "Base de données - Filtre : Classification CERO"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_BBFC_RATING,
+ "Base de données - Filtre : Classification BBFC"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_MAX_USERS,
+ "Base de données - Filtre : Nombre d'utilisateurs maximum"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_RELEASEDATE_BY_MONTH,
+ "Base de données - Filtre : Date de sortie par mois"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_RELEASEDATE_BY_YEAR,
+ "Base de données - Filtre : Date de sortie par année"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_EDGE_MAGAZINE_ISSUE,
+ "Base de données - Filtre : Numéro de magazine Edge"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_EDGE_MAGAZINE_RATING,
+ "Base de données - Filtre : Note du magazine Edge"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_DATABASE_INFO,
+ "Informations de la base de données"
+ )
+MSG_HASH(
+ MSG_WIFI_SCAN_COMPLETE,
+ "Recherche Wi-Fi terminé."
+ )
+MSG_HASH(
+ MSG_SCANNING_WIRELESS_NETWORKS,
+ "Recherche de réseaux sans fil..."
+ )
+MSG_HASH(
+ MSG_NETPLAY_LAN_SCAN_COMPLETE,
+ "Recherche de jeu en réseau terminé."
+ )
+MSG_HASH(
+ MSG_NETPLAY_LAN_SCANNING,
+ "Recherche d'hôtes de jeu en réseau..."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_PAUSE_NONACTIVE,
+ "Mettre le jeu en pause lorsque RetroArch n'est pas au premier plan."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_DISABLE_COMPOSITION,
+ "Le gestionnaire de fenêtres utilise la composition pour appliquer des effets visuels et détecter les fenêtres qui ne répondent pas, entre autres."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_HISTORY_LIST_ENABLE,
+ "Conserver une liste de lecture des jeux, images, musiques et vidéos récemment utilisés."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CONTENT_HISTORY_SIZE,
+ "Limiter le nombre d'entrées dans la liste de lecture des jeux, images, musiques et vidéos récemment utilisés."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_INPUT_UNIFIED_MENU_CONTROLS,
+ "Contrôles du menu unifiés"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_INPUT_UNIFIED_MENU_CONTROLS,
+ "Utilisez les mêmes touches pour le menu et le jeu. S'applique au clavier."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_QUIT_PRESS_TWICE,
+ "Appuyer sur quitter deux fois"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_QUIT_PRESS_TWICE,
+ "Appuyez deux fois sur la touche de raccourci Quitter pour quitter RetroArch."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_FONT_ENABLE,
+ "Affiche les messages à l'écran."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_NETWORK_USER_REMOTE_ENABLE,
+ "Utilisateur %d en réseau"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_BATTERY_LEVEL_ENABLE,
+ "Afficher le niveau de la batterie"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MENU_SHOW_SUBLABELS,
+ "Afficher la description des éléments dans le menu"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_MENU_SHOW_SUBLABELS,
+ "Affiche des informations supplémentaires pour l'entrée actuellement sélectionnée dans le menu."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_SELECT_FILE,
+ "Sélectionner un fichier"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_SELECT_FROM_PLAYLIST,
+ "Sélectionner depuis une playlist"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_FILTER,
+ "Filtre"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_SCALE,
+ "Échelle"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_NETPLAY_START_WHEN_LOADED,
+ "Le jeu en réseau débutera quand un contenu sera chargé."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_NETPLAY_LOAD_CONTENT_MANUALLY,
+ "Impossible de trouver un cœur ou un jeu adapté, veuillez charger le contenu manuellement."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_BROWSE_URL_LIST,
+ "Parcourir l'URL"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_BROWSE_URL,
+ "Emplacement de l'URL"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_BROWSE_START,
+ "Démarrer"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_BOKEH,
+ "Bokeh"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_SHADER_PIPELINE_SNOWFLAKE,
+ "Flocon de neige"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_NETPLAY_REFRESH_ROOMS,
+ "Rafraîchir la liste des salons"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_NETPLAY_ROOM_NICKNAME,
+ "Pseudo : %s"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_NETPLAY_ROOM_NICKNAME_LAN,
+ "Pseudo (lan) : %s"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_NETPLAY_COMPAT_CONTENT_FOUND,
+ "Contenu compatible trouvé"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_CROP_OVERSCAN,
+ "Tronque quelques pixels sur les bords de l'image habituellement laissés vides par les développeurs, qui contiennent parfois aussi des pixels parasites."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_SMOOTH,
+ "Ajoute un léger flou à l'image pour atténuer le contour des pixels bruts. Cette option a très peu d'impact sur les performances."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_FILTER,
+ "Applique un filtre vidéo produit par le processeur.\n"
+ "REMARQUE : Peut avoir un coût élevé pour les performances. Certains filtres vidéo ne peuvent fonctionner qu'avec les cœurs utilisant les modes de couleurs 32 bits ou 16 bits."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEEVOS_USERNAME,
+ "Entrez le nom d'utilisateur de votre compte RetroSuccès (RetroAchievements)."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEEVOS_PASSWORD,
+ "Entrez le mot de passe de votre compte RetroSuccès (RetroAchievements)."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_NETPLAY_NICKNAME,
+ "Entrez votre pseudo ici. Il sera utilisé pour les sessions de jeu en réseau, entre autres."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_POST_FILTER_RECORD,
+ "Capture l'image après l'application des filtres (mais pas des shaders). Votre vidéo sera aussi élégante que ce que vous voyez sur votre écran."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CORE_LIST,
+ "Sélectionner le cœur à utiliser."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_START_CORE,
+ "Démarrer le cœur sans contenu."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_DOWNLOAD_CORE,
+ "Installer un cœur depuis la mise à jour en ligne."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SIDELOAD_CORE_LIST,
+ "Installer ou restaurer un cœur depuis le dossier de téléchargements."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_LOAD_CONTENT_LIST,
+ "Sélectionner le contenu à démarrer."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_NETWORK_INFORMATION,
+ "Affiche la ou les interfaces réseau et les adresses IP associées."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SYSTEM_INFORMATION,
+ "Affiche les informations spécifiques à l'appareil."
+ )
+#ifdef HAVE_LAKKA
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_QUIT_RETROARCH,
+ "Redémarrer le programme."
+ )
#else
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUIT_RETROARCH,
- "Quitter le programme."
- )
+ MENU_ENUM_SUBLABEL_QUIT_RETROARCH,
+ "Quitter le programme."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_RESTART_RETROARCH,
+ "Restart the program."
+ )
#endif
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_WINDOW_WIDTH,
- "Définir une largeur personnalisée pour la fenêtre d'affichage."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_WINDOW_WIDTH,
+ "Définir une largeur personnalisée pour la fenêtre d'affichage."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_WINDOW_HEIGHT,
- "Définir une hauteur personnalisée pour la fenêtre d'affichage."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_WINDOW_HEIGHT,
+ "Définir une hauteur personnalisée pour la fenêtre d'affichage."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_WINDOW_SAVE_POSITION,
- "Restaurer la taille et la position de la fenêtre. Si activée, cette option a la priorité sur l'échelle en mode fenêtré."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_WINDOW_SAVE_POSITION,
+ "Restaurer la taille et la position de la fenêtre. Si activée, cette option a la priorité sur l'échelle en mode fenêtré."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_X,
- "Définir la largeur personnalisée pour le plein écran non fenêtré. La laisser non définie utilisera la résolution du bureau."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_X,
+ "Définir la largeur personnalisée pour le plein écran non fenêtré. La laisser non définie utilisera la résolution du bureau."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_Y,
- "Définir la hauteur personnalisée pour le plein écran non fenêtré. La laisser non définie utilisera la résolution du bureau."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_X,
- "Choisir la position personalisée sur l'axe X pour le texte à l'écran."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_Y,
- "Choisir la position personalisée sur l'axe Y pour le texte à l'écran."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_FONT_SIZE,
- "Spécifier la taille de la police en points."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_OVERLAY_HIDE_IN_MENU,
- "Masquer la surimpression à l'intérieur du menu, et l'afficher à nouveau en le quittant."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS,
- "Affiche les touches clavier/manette pressées sur la surimpression à l'écran."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS_PORT,
- "Sélectionner le port à écouter pour la surimpression si l'option 'Afficher les touches clavier/manette pressées sur la surimpression à l'écran' est activée."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_PLAYLISTS_TAB,
- "Le contenu analysé correspondant à la base de données apparaîtra ici."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SCALE_INTEGER,
- "Mets la vidéo à l'échelle uniquement sur un nombre entier. La taille de base dépend de la géométrie et du rapport d'aspect détectés par le système. Si 'Forcer le rapport d'aspect' est désactivé, X/Y seront mis à l'échelle à l'entier indépendamment."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_GPU_SCREENSHOT,
- "La sortie des captures d'écran utilise les shaders produits par le processeur graphique si disponibles."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_ROTATION,
- "Force une certaine rotation de la vidéo. La rotation s'ajoute aux rotations définies par le cœur."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_SCREEN_ORIENTATION,
- "Force une certaine orientation de l'écran à partir du système d'exploitation."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_FORCE_SRGB_DISABLE,
- "Force la désactivation de la prise en charge du mode sRGB FBO. Certains pilotes OpenGL d'Intel sous Windows rencontrent des problèmes vidéo avec le mode sRGB FBO lorsqu'il est activé. Activer cette option permet de contourner ce problème."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN,
- "Démarrer en mode plein écran. Peut être changé lors de l'exécution, et peut être remplacé par une option en ligne de commande."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_WINDOWED_FULLSCREEN,
- "En mode plein écran, préférer le mode plein écran fenêtré."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_GPU_RECORD,
- "La sortie des enregistrements utilise les shaders produits par le processeur graphique si disponibles."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_SAVESTATE_AUTO_INDEX,
- "Lors de la création d'une sauvegarde instantanée, le numéro de la sauvegarde instantanée est automatiquement incrémenté avant l'enregistrement. Lors du chargement de contenu, le numéro sera réglé sur le plus haut existant."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_BLOCK_SRAM_OVERWRITE,
- "Empêche la SRAM d'être écrasée lors du chargement d'une sauvegarde instantanée. Pourrait potentiellement conduire à des bugs de jeu."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_FASTFORWARD_RATIO,
- "Vitesse d'exécution de contenu maximale lors de l'avance rapide (par exemple, 5,0x pour un contenu à 60 images/s = une limitation à 300 images/s) Si définie à 0,0x, la vitesse en avance rapide est illimitée (pas de limite d'images/s)."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_SLOWMOTION_RATIO,
- "En mode ralenti, le contenu ralentira selon le facteur spécifié/défini."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_RUN_AHEAD_ENABLED,
- "Exécute la logique du cœur une ou plusieurs images à l'avance, puis recharge l'état précédent pour réduire la latence perçue à chaque touche pressée."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_RUN_AHEAD_FRAMES,
- "Nombre d'images à éxécuter en avance. Provoque des problèmes de jeu tels que des variations de la latence si vous dépassez le nombre d'images de latence interne du jeu."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_Y,
+ "Définir la hauteur personnalisée pour le plein écran non fenêtré. La laisser non définie utilisera la résolution du bureau."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_BLOCK_TIMEOUT,
- "Temps d'attente en millisecondes pour obtenir un échantillon complet des touches pressées, utilisez cette option si vous avez des problèmes avec les touches pressées simultanément (Android uniquement)."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_X,
+ "Choisir la position personalisée sur l'axe X pour le texte à l'écran."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_Y,
+ "Choisir la position personalisée sur l'axe Y pour le texte à l'écran."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_FONT_SIZE,
+ "Spécifier la taille de la police en points."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_INPUT_OVERLAY_HIDE_IN_MENU,
+ "Masquer la surimpression à l'intérieur du menu, et l'afficher à nouveau en le quittant."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS,
+ "Affiche les touches clavier/manette pressées sur la surimpression à l'écran."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS_PORT,
+ "Sélectionner le port à écouter pour la surimpression si l'option 'Afficher les touches clavier/manette pressées sur la surimpression à l'écran' est activée."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_INPUT_OVERLAY_SHOW_MOUSE_CURSOR,
+ "Show the mouse cursor when using an onscreen overlay."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_PLAYLISTS_TAB,
+ "Le contenu analysé correspondant à la base de données apparaîtra ici."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_SCALE_INTEGER,
+ "Mets la vidéo à l'échelle uniquement sur un nombre entier. La taille de base dépend de la géométrie et du rapport d'aspect détectés par le système. Si 'Forcer le rapport d'aspect' est désactivé, X/Y seront mis à l'échelle à l'entier indépendamment."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_GPU_SCREENSHOT,
+ "La sortie des captures d'écran utilise les shaders produits par le processeur graphique si disponibles."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_ROTATION,
+ "Force une certaine rotation de la vidéo. La rotation s'ajoute aux rotations définies par le cœur."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SCREEN_ORIENTATION,
+ "Force une certaine orientation de l'écran à partir du système d'exploitation."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_FORCE_SRGB_DISABLE,
+ "Force la désactivation de la prise en charge du mode sRGB FBO. Certains pilotes OpenGL d'Intel sous Windows rencontrent des problèmes vidéo avec le mode sRGB FBO lorsqu'il est activé. Activer cette option permet de contourner ce problème."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN,
+ "Démarrer en mode plein écran. Peut être changé lors de l'exécution, et peut être remplacé par une option en ligne de commande."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_WINDOWED_FULLSCREEN,
+ "En mode plein écran, préférer le mode plein écran fenêtré."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_GPU_RECORD,
+ "La sortie des enregistrements utilise les shaders produits par le processeur graphique si disponibles."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SAVESTATE_AUTO_INDEX,
+ "Lors de la création d'une sauvegarde instantanée, le numéro de la sauvegarde instantanée est automatiquement incrémenté avant l'enregistrement. Lors du chargement de contenu, le numéro sera réglé sur le plus haut existant."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_BLOCK_SRAM_OVERWRITE,
+ "Empêche la SRAM d'être écrasée lors du chargement d'une sauvegarde instantanée. Pourrait potentiellement conduire à des bugs de jeu."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_FASTFORWARD_RATIO,
+ "Vitesse d'exécution de contenu maximale lors de l'avance rapide (par exemple, 5,0x pour un contenu à 60 images/s = une limitation à 300 images/s) Si définie à 0,0x, la vitesse en avance rapide est illimitée (pas de limite d'images/s)."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SLOWMOTION_RATIO,
+ "En mode ralenti, le contenu ralentira selon le facteur spécifié/défini."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_RUN_AHEAD_ENABLED,
+ "Exécute la logique du cœur une ou plusieurs images à l'avance, puis recharge l'état précédent pour réduire la latence perçue à chaque touche pressée."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_RUN_AHEAD_SECONDARY_INSTANCE,
- "Utilisez une seconde instance du cœur RetroArch pour l'éxécution en avance. Empêche les problèmes audio dus au chargement de l'état précédent."
- )
+ MENU_ENUM_SUBLABEL_RUN_AHEAD_FRAMES,
+ "Nombre d'images à éxécuter en avance. Provoque des problèmes de jeu tels que des variations de la latence si vous dépassez le nombre d'images de latence interne du jeu."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_RUN_AHEAD_HIDE_WARNINGS,
- "Masque le message d'avertissement qui apparaît lors de l'utilisation de l'éxécution en avance si le cœur ne prend pas en charge les sauvegardes instantanées."
- )
+ MENU_ENUM_SUBLABEL_INPUT_BLOCK_TIMEOUT,
+ "Temps d'attente en millisecondes pour obtenir un échantillon complet des touches pressées, utilisez cette option si vous avez des problèmes avec les touches pressées simultanément (Android uniquement)."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_REWIND_ENABLE,
- "Vous avez fait une erreur ? Utilisez le rembobinage et réessayez.\n"
- "Attention, activer cette option entraîne une baisse des performances lors du jeu."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_APPLY_AFTER_TOGGLE,
- "Appliquer les cheats immédiatement après l'activation."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_APPLY_AFTER_LOAD,
- "Appliquer automatiquement les cheats au chargement du jeu."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_REPEAT_COUNT,
- "Nombre de fois que le cheat sera appliqué.\n"
- "Utiliser avec les deux autres options d'itération pour affecter de grandes zones de mémoire."
- )
+ MENU_ENUM_SUBLABEL_RUN_AHEAD_SECONDARY_INSTANCE,
+ "Utilisez une seconde instance du cœur RetroArch pour l'éxécution en avance. Empêche les problèmes audio dus au chargement de l'état précédent."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_REPEAT_ADD_TO_ADDRESS,
- "Après chaque 'Nombre d'itérations', l'adresse mémoire sera incrémentée de ce montant multiplié par la 'Taille de recherche dans la mémoire'."
- )
+ MENU_ENUM_SUBLABEL_RUN_AHEAD_HIDE_WARNINGS,
+ "Masque le message d'avertissement qui apparaît lors de l'utilisation de l'éxécution en avance si le cœur ne prend pas en charge les sauvegardes instantanées."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_REPEAT_ADD_TO_VALUE,
- "Après chaque 'Nombre d'itérations', la valeur sera augmentée de ce montant."
- )
+ MENU_ENUM_SUBLABEL_REWIND_ENABLE,
+ "Vous avez fait une erreur ? Utilisez le rembobinage et réessayez.\n"
+ "Attention, activer cette option entraîne une baisse des performances lors du jeu."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_APPLY_AFTER_TOGGLE,
+ "Appliquer les cheats immédiatement après l'activation."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_APPLY_AFTER_LOAD,
+ "Appliquer automatiquement les cheats au chargement du jeu."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_REPEAT_COUNT,
+ "Nombre de fois que le cheat sera appliqué.\n"
+ "Utiliser avec les deux autres options d'itération pour affecter de grandes zones de mémoire."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_REWIND_GRANULARITY,
- "Lorsque vous définissez le rembobinage sur plusieurs images à la fois, vous augmentez sa vitesse."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_REWIND_BUFFER_SIZE,
- "Quantité de mémoire (en Mo) à réserver pour la mémoire tampon de rembobinage. Augmenter cette valeur augmentera la quantité d'historique du rembobinage."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_REWIND_BUFFER_SIZE_STEP,
- "Chaque fois que vous augmentez ou diminuez la valeur de la taille de la mémoire tampon de rembobinage via cette interface, cette valeur changera de ce montant"
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_IDX,
- "Position d'index dans la liste."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_ADDRESS_BIT_POSITION,
- "Masque binaire d'adresse lorsque la taille de la recherche dans la mémoire est < 8 bits."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_MATCH_IDX,
- "Sélectionner la correspondance à afficher."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_START_OR_CONT,
- ""
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_START_OR_RESTART,
- "Gauche/droite pour changer la taille de bits"
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_SEARCH_EXACT,
- "Gauche/droite pour changer la valeur"
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_SEARCH_LT,
- ""
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_SEARCH_GT,
- ""
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_SEARCH_LTE,
- ""
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_SEARCH_GTE,
- ""
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_SEARCH_EQ,
- ""
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_SEARCH_NEQ,
- ""
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_SEARCH_EQPLUS,
- "Gauche/droite pour changer la valeur"
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_SEARCH_EQMINUS,
- "Gauche/droite pour changer la valeur"
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_ADD_MATCHES,
- ""
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_VIEW_MATCHES,
- ""
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_CREATE_OPTION,
- ""
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_DELETE_OPTION,
- ""
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_ADD_NEW_TOP,
- ""
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_ADD_NEW_BOTTOM,
- ""
- )
+ MENU_ENUM_SUBLABEL_CHEAT_REPEAT_ADD_TO_ADDRESS,
+ "Après chaque 'Nombre d'itérations', l'adresse mémoire sera incrémentée de ce montant multiplié par la 'Taille de recherche dans la mémoire'."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_DELETE_ALL,
- ""
- )
+ MENU_ENUM_SUBLABEL_CHEAT_REPEAT_ADD_TO_VALUE,
+ "Après chaque 'Nombre d'itérations', la valeur sera augmentée de ce montant."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_RELOAD_CHEATS,
- ""
- )
+ MENU_ENUM_SUBLABEL_REWIND_GRANULARITY,
+ "Lorsque vous définissez le rembobinage sur plusieurs images à la fois, vous augmentez sa vitesse."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_REWIND_BUFFER_SIZE,
+ "Quantité de mémoire (en Mo) à réserver pour la mémoire tampon de rembobinage. Augmenter cette valeur augmentera la quantité d'historique du rembobinage."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_REWIND_BUFFER_SIZE_STEP,
+ "Chaque fois que vous augmentez ou diminuez la valeur de la taille de la mémoire tampon de rembobinage via cette interface, cette valeur changera de ce montant"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_IDX,
+ "Position d'index dans la liste."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_ADDRESS_BIT_POSITION,
+ "Masque binaire d'adresse lorsque la taille de la recherche dans la mémoire est < 8 bits."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_MATCH_IDX,
+ "Sélectionner la correspondance à afficher."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_START_OR_CONT,
+ ""
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_START_OR_RESTART,
+ "Gauche/droite pour changer la taille de bits"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_SEARCH_EXACT,
+ "Gauche/droite pour changer la valeur"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_SEARCH_LT,
+ ""
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_SEARCH_GT,
+ ""
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_SEARCH_LTE,
+ ""
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_SEARCH_GTE,
+ ""
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_SEARCH_EQ,
+ ""
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_SEARCH_NEQ,
+ ""
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_SEARCH_EQPLUS,
+ "Gauche/droite pour changer la valeur"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_SEARCH_EQMINUS,
+ "Gauche/droite pour changer la valeur"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_ADD_MATCHES,
+ ""
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_VIEW_MATCHES,
+ ""
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_CREATE_OPTION,
+ ""
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_DELETE_OPTION,
+ ""
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_ADD_NEW_TOP,
+ ""
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CHEAT_ADD_NEW_BOTTOM,
+ ""
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_BIG_ENDIAN,
- "Gros-boutienne : 258 = 0x0102,\n"
- "Petit-boutienne : 258 = 0x0201"
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_LIBRETRO_LOG_LEVEL,
- "Définit le niveau de journalisation pour les cœurs. Si un niveau de journalisation émis par un cœur est inférieur à cette valeur, il sera ignoré."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_PERFCNT_ENABLE,
- "Compteurs de performance pour RetroArch (et les cœurs).\n"
- "Les données de compteur peuvent aider à déterminer les goulots d'étranglement du système et à ajuster les performances du système et de l'application"
- )
+ MENU_ENUM_SUBLABEL_CHEAT_DELETE_ALL,
+ ""
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SAVESTATE_AUTO_SAVE,
- "Créer automatiquement une sauvegarde instantanée à la fin de l'exécution de RetroArch. RetroArch chargera à nouveau cette sauvegarde instantanée automatiquement si 'Chargement auto des sauvegardes instantanées' est activé"
- )
+ MENU_ENUM_SUBLABEL_CHEAT_RELOAD_CHEATS,
+ ""
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SAVESTATE_AUTO_LOAD,
- "Charger la sauvegarde instantanée automatique au démarrage."
- )
+ MENU_ENUM_SUBLABEL_CHEAT_BIG_ENDIAN,
+ "Gros-boutienne : 258 = 0x0102,\n"
+ "Petit-boutienne : 258 = 0x0201"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_LIBRETRO_LOG_LEVEL,
+ "Définit le niveau de journalisation pour les cœurs. Si un niveau de journalisation émis par un cœur est inférieur à cette valeur, il sera ignoré."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_PERFCNT_ENABLE,
+ "Compteurs de performance pour RetroArch (et les cœurs).\n"
+ "Les données de compteur peuvent aider à déterminer les goulots d'étranglement du système et à ajuster les performances du système et de l'application"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SAVESTATE_THUMBNAIL_ENABLE,
- "Affiche des miniatures pour les sauvegardes instantanées dans le menu."
- )
+ MENU_ENUM_SUBLABEL_SAVESTATE_AUTO_SAVE,
+ "Créer automatiquement une sauvegarde instantanée à la fin de l'exécution de RetroArch. RetroArch chargera à nouveau cette sauvegarde instantanée automatiquement si 'Chargement auto des sauvegardes instantanées' est activé"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_AUTOSAVE_INTERVAL,
- "Sauvegarde automatiquement la mémoire SRAM non volatile à un intervalle régulier. Cette option est désactivée par défaut. L'intervalle est mesuré en secondes. Une valeur de 0 désactive la sauvegarde automatique."
- )
+ MENU_ENUM_SUBLABEL_SAVESTATE_AUTO_LOAD,
+ "Charger la sauvegarde instantanée automatique au démarrage."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_REMAP_BINDS_ENABLE,
- "Si cette option est activée, les assignations des touches pressées seront remplacées par les assignations remappées définies pour le cœur actuel."
- )
+ MENU_ENUM_SUBLABEL_SAVESTATE_THUMBNAIL_ENABLE,
+ "Affiche des miniatures pour les sauvegardes instantanées dans le menu."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_AUTODETECT_ENABLE,
- "Si cette option est activée, tente de configurer automatiquement les contrôleurs, style Plug-and-Play."
- )
+ MENU_ENUM_SUBLABEL_AUTOSAVE_INTERVAL,
+ "Sauvegarde automatiquement la mémoire SRAM non volatile à un intervalle régulier. Cette option est désactivée par défaut. L'intervalle est mesuré en secondes. Une valeur de 0 désactive la sauvegarde automatique."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_INPUT_SWAP_OK_CANCEL,
- "Échanger les touches pour Confirmer/Annuler. Désactivé correspond à l'orientation japonaise des touches, activé correspond à l'orientation occidentale."
- )
+ MENU_ENUM_SUBLABEL_INPUT_REMAP_BINDS_ENABLE,
+ "Si cette option est activée, les assignations des touches pressées seront remplacées par les assignations remappées définies pour le cœur actuel."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_PAUSE_LIBRETRO,
- "Si cette option est désactivée, le contenu continuera à fonctionner en arrière-plan lorsque le menu RetroArch est activé."
- )
+ MENU_ENUM_SUBLABEL_INPUT_AUTODETECT_ENABLE,
+ "Si cette option est activée, tente de configurer automatiquement les contrôleurs, style Plug-and-Play."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_DRIVER,
- "Pilote vidéo à utiliser."
- )
+ MENU_ENUM_SUBLABEL_MENU_INPUT_SWAP_OK_CANCEL,
+ "Échanger les touches pour Confirmer/Annuler. Désactivé correspond à l'orientation japonaise des touches, activé correspond à l'orientation occidentale."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_DRIVER,
- "Pilote audio à utiliser."
- )
+ MENU_ENUM_SUBLABEL_PAUSE_LIBRETRO,
+ "Si cette option est désactivée, le contenu continuera à fonctionner en arrière-plan lorsque le menu RetroArch est activé."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_DRIVER,
- "Pilote d'entrées à utiliser. Selon le pilote vidéo sélectionné, l'utilisation d'un pilote d'entrées différent peut être forcée."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_DRIVER,
+ "Pilote vidéo à utiliser."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_JOYPAD_DRIVER,
- "Pilote de manettes à utiliser."
- )
+ MENU_ENUM_SUBLABEL_AUDIO_DRIVER,
+ "Pilote audio à utiliser."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_RESAMPLER_DRIVER,
- "Pilote de rééchantillonnage audio à utiliser."
- )
+ MENU_ENUM_SUBLABEL_INPUT_DRIVER,
+ "Pilote d'entrées à utiliser. Selon le pilote vidéo sélectionné, l'utilisation d'un pilote d'entrées différent peut être forcée."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CAMERA_DRIVER,
- "Pilote de caméra à utiliser."
- )
+ MENU_ENUM_SUBLABEL_JOYPAD_DRIVER,
+ "Pilote de manettes à utiliser."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_LOCATION_DRIVER,
- "Pilote de localisation à utiliser."
- )
+ MENU_ENUM_SUBLABEL_AUDIO_RESAMPLER_DRIVER,
+ "Pilote de rééchantillonnage audio à utiliser."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_DRIVER,
- "Pilote de menu à utiliser."
- )
+ MENU_ENUM_SUBLABEL_CAMERA_DRIVER,
+ "Pilote de caméra à utiliser."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_RECORD_DRIVER,
- "Pilote d'enregistrement à utiliser."
- )
+ MENU_ENUM_SUBLABEL_LOCATION_DRIVER,
+ "Pilote de localisation à utiliser."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MIDI_DRIVER,
- "Pilote MIDI à utiliser."
- )
+ MENU_ENUM_SUBLABEL_MENU_DRIVER,
+ "Pilote de menu à utiliser."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_WIFI_DRIVER,
- "Pilote Wi-Fi à utiliser."
- )
+ MENU_ENUM_SUBLABEL_RECORD_DRIVER,
+ "Pilote d'enregistrement à utiliser."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NAVIGATION_BROWSER_FILTER_SUPPORTED_EXTENSIONS_ENABLE,
- "Filtrer les fichiers affichés dans le navigateur de fichiers selon les extensions prises en charge."
- )
+ MENU_ENUM_SUBLABEL_MIDI_DRIVER,
+ "Pilote MIDI à utiliser."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_WALLPAPER,
- "Sélectionner une image à définir comme fond d'écran du menu."
- )
+ MENU_ENUM_SUBLABEL_WIFI_DRIVER,
+ "Pilote Wi-Fi à utiliser."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_DYNAMIC_WALLPAPER,
- "Charger dynamiquement un nouveau fond d'écran en fonction du contexte."
- )
+ MENU_ENUM_SUBLABEL_NAVIGATION_BROWSER_FILTER_SUPPORTED_EXTENSIONS_ENABLE,
+ "Filtrer les fichiers affichés dans le navigateur de fichiers selon les extensions prises en charge."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_DEVICE,
- "Remplacer le périphérique audio utilisé par défaut par le pilote audio. Cette option dépend du pilote."
- )
+ MENU_ENUM_SUBLABEL_MENU_WALLPAPER,
+ "Sélectionner une image à définir comme fond d'écran du menu."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_DSP_PLUGIN,
- "Filtre audio DSP utilisé pour traiter l'audio avant de l'envoyer au pilote."
- )
+ MENU_ENUM_SUBLABEL_DYNAMIC_WALLPAPER,
+ "Charger dynamiquement un nouveau fond d'écran en fonction du contexte."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_OUTPUT_RATE,
- "Fréquence d'échantillonnage de la sortie audio."
- )
+ MENU_ENUM_SUBLABEL_AUDIO_DEVICE,
+ "Remplacer le périphérique audio utilisé par défaut par le pilote audio. Cette option dépend du pilote."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_OVERLAY_OPACITY,
- "Opacité de tous les éléments d'interface utilisateur de la surimpression."
- )
+ MENU_ENUM_SUBLABEL_AUDIO_DSP_PLUGIN,
+ "Filtre audio DSP utilisé pour traiter l'audio avant de l'envoyer au pilote."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_OVERLAY_SCALE,
- "Échelle de tous les éléments d'interface utilisateur de la surimpression."
- )
+ MENU_ENUM_SUBLABEL_AUDIO_OUTPUT_RATE,
+ "Fréquence d'échantillonnage de la sortie audio."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_OVERLAY_ENABLE,
- "Les surimpressions sont utilisées pour les bordures et les contrôles à l'écran"
- )
+ MENU_ENUM_SUBLABEL_OVERLAY_OPACITY,
+ "Opacité de tous les éléments d'interface utilisateur de la surimpression."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_OVERLAY_PRESET,
- "Sélectionner une surimpression à partir du navigateur de fichiers."
- )
+ MENU_ENUM_SUBLABEL_OVERLAY_SCALE,
+ "Échelle de tous les éléments d'interface utilisateur de la surimpression."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_IP_ADDRESS,
- "Adresse de l'hôte auquel se connecter."
- )
+ MENU_ENUM_SUBLABEL_INPUT_OVERLAY_ENABLE,
+ "Les surimpressions sont utilisées pour les bordures et les contrôles à l'écran"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_TCP_UDP_PORT,
- "Port de l'adresse IP de l'hôte. Peut être un port TCP ou UDP."
- )
+ MENU_ENUM_SUBLABEL_OVERLAY_PRESET,
+ "Sélectionner une surimpression à partir du navigateur de fichiers."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_PASSWORD,
- "Mot de passe pour se connecter à l'hôte de jeu en réseau. Utilisé uniquement en mode hôte."
- )
+ MENU_ENUM_SUBLABEL_NETPLAY_IP_ADDRESS,
+ "Adresse de l'hôte auquel se connecter."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_PUBLIC_ANNOUNCE,
- "Détermine s'il faut annoncer les sessions de jeu en réseau publiquement. Si cette option est désactivée, les clients doivent se connecter manuellement plutôt que d'utiliser le salon public."
- )
+ MENU_ENUM_SUBLABEL_NETPLAY_TCP_UDP_PORT,
+ "Port de l'adresse IP de l'hôte. Peut être un port TCP ou UDP."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_SPECTATE_PASSWORD,
- "Mot de passe pour se connecter à l'hôte de jeu en réseau avec des privilèges spectateur uniquement. Utilisé uniquement en mode hôte."
- )
+ MENU_ENUM_SUBLABEL_NETPLAY_PASSWORD,
+ "Mot de passe pour se connecter à l'hôte de jeu en réseau. Utilisé uniquement en mode hôte."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_START_AS_SPECTATOR,
- "Détermine s'il faut démarrer le jeu en réseau en mode spectateur."
- )
+ MENU_ENUM_SUBLABEL_NETPLAY_PUBLIC_ANNOUNCE,
+ "Détermine s'il faut annoncer les sessions de jeu en réseau publiquement. Si cette option est désactivée, les clients doivent se connecter manuellement plutôt que d'utiliser le salon public."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_ALLOW_SLAVES,
- "Autoriser ou non les connexions en mode passif. Les clients en mode passif nécessitent très peu de puissance de traitement de part et d'autre, mais souffrent considérablement de la latence du réseau."
- )
+ MENU_ENUM_SUBLABEL_NETPLAY_SPECTATE_PASSWORD,
+ "Mot de passe pour se connecter à l'hôte de jeu en réseau avec des privilèges spectateur uniquement. Utilisé uniquement en mode hôte."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_REQUIRE_SLAVES,
- "Interdire les connexions qui ne sont pas en mode passif. Non recommandé sauf pour les réseaux très rapides avec des machines très faibles."
- )
+ MENU_ENUM_SUBLABEL_NETPLAY_START_AS_SPECTATOR,
+ "Détermine s'il faut démarrer le jeu en réseau en mode spectateur."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_STATELESS_MODE,
- "Détermine s'il faut exécuter le jeu en réseau dans un mode ne nécessitant pas de sauvegardes instantanées. Un réseau très rapide est requis, mais aucun rembobinage ne sera effectué. Il n'y aura donc pas de variations de la latence lors du jeu en réseau"
- )
+ MENU_ENUM_SUBLABEL_NETPLAY_ALLOW_SLAVES,
+ "Autoriser ou non les connexions en mode passif. Les clients en mode passif nécessitent très peu de puissance de traitement de part et d'autre, mais souffrent considérablement de la latence du réseau."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_CHECK_FRAMES,
- "Fréquence en images avec laquelle le jeu en réseau vérifiera que l'hôte et le client sont synchronisés."
- )
+ MENU_ENUM_SUBLABEL_NETPLAY_REQUIRE_SLAVES,
+ "Interdire les connexions qui ne sont pas en mode passif. Non recommandé sauf pour les réseaux très rapides avec des machines très faibles."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_NAT_TRAVERSAL,
- "Lors de l'hébergement, tenter d'intercepter des connexions depuis l'internet public, en utilisant UPnP ou des technologies similaires pour sortir du réseau local."
- )
+ MENU_ENUM_SUBLABEL_NETPLAY_STATELESS_MODE,
+ "Détermine s'il faut exécuter le jeu en réseau dans un mode ne nécessitant pas de sauvegardes instantanées. Un réseau très rapide est requis, mais aucun rembobinage ne sera effectué. Il n'y aura donc pas de variations de la latence lors du jeu en réseau"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_STDIN_CMD_ENABLE,
- "Interface de commandes stdin."
- )
+ MENU_ENUM_SUBLABEL_NETPLAY_CHECK_FRAMES,
+ "Fréquence en images avec laquelle le jeu en réseau vérifiera que l'hôte et le client sont synchronisés."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MOUSE_ENABLE,
- "Permet de contrôler le menu avec une souris."
- )
+ MENU_ENUM_SUBLABEL_NETPLAY_NAT_TRAVERSAL,
+ "Lors de l'hébergement, tenter d'intercepter des connexions depuis l'internet public, en utilisant UPnP ou des technologies similaires pour sortir du réseau local."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_POINTER_ENABLE,
- "Permet de contrôler le menu avec le toucher."
- )
+ MENU_ENUM_SUBLABEL_STDIN_CMD_ENABLE,
+ "Interface de commandes stdin."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_THUMBNAILS,
- "Type de miniatures à afficher."
- )
+ MENU_ENUM_SUBLABEL_MOUSE_ENABLE,
+ "Permet de contrôler le menu avec une souris."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_THUMBNAILS_RGUI,
- "Type de miniatures à afficher en haut à droite des listes de lecture. Cette vignette peut être basculée en mode plein écran en appuyant sur RetroManette Y."
- )
+ MENU_ENUM_SUBLABEL_POINTER_ENABLE,
+ "Permet de contrôler le menu avec le toucher."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_LEFT_THUMBNAILS,
- "Type de miniatures à afficher à gauche."
- )
+ MENU_ENUM_SUBLABEL_THUMBNAILS,
+ "Type de miniatures à afficher."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_LEFT_THUMBNAILS_RGUI,
- "Type de miniatures à afficher en bas à droite des listes de lecture."
- )
+ MENU_ENUM_SUBLABEL_THUMBNAILS_RGUI,
+ "Type de miniatures à afficher en haut à droite des listes de lecture. Cette vignette peut être basculée en mode plein écran en appuyant sur RetroManette Y."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_LEFT_THUMBNAILS_OZONE,
- "Remplacer le panneau des métadonnées du contenu par une autre miniature."
- )
+ MENU_ENUM_SUBLABEL_LEFT_THUMBNAILS,
+ "Type de miniatures à afficher à gauche."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_XMB_VERTICAL_THUMBNAILS,
- "Affiche la miniature de gauche sous celle de droite, à droite de l'écran."
- )
+ MENU_ENUM_SUBLABEL_LEFT_THUMBNAILS_RGUI,
+ "Type de miniatures à afficher en bas à droite des listes de lecture."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_TIMEDATE_ENABLE,
- "Affiche la date et/ou l'heure locale dans le menu."
- )
+ MENU_ENUM_SUBLABEL_LEFT_THUMBNAILS_OZONE,
+ "Remplacer le panneau des métadonnées du contenu par une autre miniature."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_BATTERY_LEVEL_ENABLE,
- "Affiche le niveau actuel de la batterie dans le menu."
- )
+ MENU_ENUM_SUBLABEL_XMB_VERTICAL_THUMBNAILS,
+ "Affiche la miniature de gauche sous celle de droite, à droite de l'écran."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NAVIGATION_WRAPAROUND,
- "Retour au début et/ou à la fin si la limite de la liste est atteinte horizontalement ou verticalement."
- )
+ MENU_ENUM_SUBLABEL_TIMEDATE_ENABLE,
+ "Affiche la date et/ou l'heure locale dans le menu."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_ENABLE_HOST,
- "Activer le jeu en réseau en mode hôte (serveur)."
- )
+ MENU_ENUM_SUBLABEL_BATTERY_LEVEL_ENABLE,
+ "Affiche le niveau actuel de la batterie dans le menu."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_ENABLE_CLIENT,
- "Entrer l'adresse du serveur de jeu en réseau et se connecter en mode client."
- )
+ MENU_ENUM_SUBLABEL_NAVIGATION_WRAPAROUND,
+ "Retour au début et/ou à la fin si la limite de la liste est atteinte horizontalement ou verticalement."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_DISCONNECT,
- "Déconnecte une connexion de jeu en réseau active."
- )
+ MENU_ENUM_SUBLABEL_NETPLAY_ENABLE_HOST,
+ "Activer le jeu en réseau en mode hôte (serveur)."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SCAN_DIRECTORY,
- "Analyser un dossier pour trouver du contenu correspondant à la base de données."
- )
+ MENU_ENUM_SUBLABEL_NETPLAY_ENABLE_CLIENT,
+ "Entrer l'adresse du serveur de jeu en réseau et se connecter en mode client."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SCAN_FILE,
- "Analyser un fichier pour trouver du contenu correspondant à la base de données."
- )
+ MENU_ENUM_SUBLABEL_NETPLAY_DISCONNECT,
+ "Déconnecte une connexion de jeu en réseau active."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SWAP_INTERVAL,
- "Utiliser un intervalle d'échange personnalisé pour la synchronisation verticale (V-Sync). Utilisez cette option pour réduire de moitié la fréquence de rafraîchissement du moniteur."
- )
+ MENU_ENUM_SUBLABEL_SCAN_DIRECTORY,
+ "Analyser un dossier pour trouver du contenu correspondant à la base de données."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SORT_SAVEFILES_ENABLE,
- "Trier les fichiers de sauvegarde dans des dossiers nommés d'après le cœur utilisé."
- )
+ MENU_ENUM_SUBLABEL_SCAN_FILE,
+ "Analyser un fichier pour trouver du contenu correspondant à la base de données."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SORT_SAVESTATES_ENABLE,
- "Trier les sauvegardes instantanées dans des dossiers nommés d'après le cœur utilisé."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_SWAP_INTERVAL,
+ "Utiliser un intervalle d'échange personnalisé pour la synchronisation verticale (V-Sync). Utilisez cette option pour réduire de moitié la fréquence de rafraîchissement du moniteur."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_REQUEST_DEVICE_I,
- "Demander à jouer avec le périphérique d'entrée donné."
- )
+ MENU_ENUM_SUBLABEL_SORT_SAVEFILES_ENABLE,
+ "Trier les fichiers de sauvegarde dans des dossiers nommés d'après le cœur utilisé."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CORE_UPDATER_BUILDBOT_URL,
- "URL du dossier de mise à jour des cœurs sur le buildbot Libretro."
- )
+ MENU_ENUM_SUBLABEL_SORT_SAVESTATES_ENABLE,
+ "Trier les sauvegardes instantanées dans des dossiers nommés d'après le cœur utilisé."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_BUILDBOT_ASSETS_URL,
- "URL du dossier de mise à jour des assets sur le buildbot Libretro."
- )
+ MENU_ENUM_SUBLABEL_NETPLAY_REQUEST_DEVICE_I,
+ "Demander à jouer avec le périphérique d'entrée donné."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CORE_UPDATER_AUTO_EXTRACT_ARCHIVE,
- "Après le téléchargement, extraire automatiquement les fichiers contenus dans les archives téléchargées."
- )
+ MENU_ENUM_SUBLABEL_CORE_UPDATER_BUILDBOT_URL,
+ "URL du dossier de mise à jour des cœurs sur le buildbot Libretro."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_REFRESH_ROOMS,
- "Rechercher de nouveaux salons."
- )
+ MENU_ENUM_SUBLABEL_BUILDBOT_ASSETS_URL,
+ "URL du dossier de mise à jour des assets sur le buildbot Libretro."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_DELETE_ENTRY,
- "Supprimer cette entrée de la liste de lecture."
- )
+ MENU_ENUM_SUBLABEL_CORE_UPDATER_AUTO_EXTRACT_ARCHIVE,
+ "Après le téléchargement, extraire automatiquement les fichiers contenus dans les archives téléchargées."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_INFORMATION,
- "Affiche plus d'informations sur le contenu."
- )
+ MENU_ENUM_SUBLABEL_NETPLAY_REFRESH_ROOMS,
+ "Rechercher de nouveaux salons."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_ADD_TO_FAVORITES,
- "Ajoute l'entrée à vos favoris."
- )
+ MENU_ENUM_SUBLABEL_DELETE_ENTRY,
+ "Supprimer cette entrée de la liste de lecture."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_ADD_TO_FAVORITES_PLAYLIST,
- "Ajoute l'entrée à vos favoris."
- )
+ MENU_ENUM_SUBLABEL_INFORMATION,
+ "Affiche plus d'informations sur le contenu."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_RUN,
- "Démarre le contenu."
- )
+ MENU_ENUM_SUBLABEL_ADD_TO_FAVORITES,
+ "Ajoute l'entrée à vos favoris."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_FILE_BROWSER_SETTINGS,
- "Ajuste les réglages du navigateur de fichiers."
- )
+ MENU_ENUM_SUBLABEL_ADD_TO_FAVORITES_PLAYLIST,
+ "Ajoute l'entrée à vos favoris."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_AUTO_REMAPS_ENABLE,
- "Charger des contrôles personnalisés au démarrage."
- )
+ MENU_ENUM_SUBLABEL_RUN,
+ "Démarre le contenu."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_AUTO_OVERRIDES_ENABLE,
- "Charger une configuration personnalisée au démarrage."
- )
+ MENU_ENUM_SUBLABEL_MENU_FILE_BROWSER_SETTINGS,
+ "Ajuste les réglages du navigateur de fichiers."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_GAME_SPECIFIC_OPTIONS,
- "Charger des options de cœur personnalisées au démarrage."
- )
+ MENU_ENUM_SUBLABEL_AUTO_REMAPS_ENABLE,
+ "Charger des contrôles personnalisés au démarrage."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CORE_ENABLE,
- "Affiche le nom du cœur actuel dans le menu."
- )
+ MENU_ENUM_SUBLABEL_AUTO_OVERRIDES_ENABLE,
+ "Charger une configuration personnalisée au démarrage."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_DATABASE_MANAGER,
- "Affiche les bases de données."
- )
+ MENU_ENUM_SUBLABEL_GAME_SPECIFIC_OPTIONS,
+ "Charger des options de cœur personnalisées au démarrage."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CURSOR_MANAGER,
- "Affiche les recherches précédentes."
- )
+ MENU_ENUM_SUBLABEL_CORE_ENABLE,
+ "Affiche le nom du cœur actuel dans le menu."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_TAKE_SCREENSHOT,
- "Capture une image de l'écran."
- )
+ MENU_ENUM_SUBLABEL_DATABASE_MANAGER,
+ "Affiche les bases de données."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CLOSE_CONTENT,
- "Ferme le contenu actuel. Toute modification non enregistrée pourrait être perdue."
- )
+ MENU_ENUM_SUBLABEL_CURSOR_MANAGER,
+ "Affiche les recherches précédentes."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_LOAD_STATE,
- "Charge une sauvegarde instantanée depuis l'emplacement actuellement sélectionné."
- )
+ MENU_ENUM_SUBLABEL_TAKE_SCREENSHOT,
+ "Capture une image de l'écran."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SAVE_STATE,
- "Effectue une sauvegarde instantanée dans l'emplacement actuellement sélectionné."
- )
+ MENU_ENUM_SUBLABEL_CLOSE_CONTENT,
+ "Ferme le contenu actuel. Toute modification non enregistrée pourrait être perdue."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_RESUME,
- "Reprendre le contenu en cours et quitter le menu rapide."
- )
+ MENU_ENUM_SUBLABEL_LOAD_STATE,
+ "Charge une sauvegarde instantanée depuis l'emplacement actuellement sélectionné."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_RESUME_CONTENT,
- "Reprendre le contenu en cours et quitter le menu rapide."
- )
+ MENU_ENUM_SUBLABEL_SAVE_STATE,
+ "Effectue une sauvegarde instantanée dans l'emplacement actuellement sélectionné."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_STATE_SLOT,
- "Changer l'emplacement de sauvegarde instantanée actuellement sélectionné."
- )
+ MENU_ENUM_SUBLABEL_RESUME,
+ "Reprendre le contenu en cours et quitter le menu rapide."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_UNDO_LOAD_STATE,
- "Si une sauvegarde instantanée a été chargée, le contenu reviendra à l'état avant le chargement."
- )
+ MENU_ENUM_SUBLABEL_RESUME_CONTENT,
+ "Reprendre le contenu en cours et quitter le menu rapide."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_UNDO_SAVE_STATE,
- "Si une sauvegarde instantanée a été écrasée, elle sera restaurée à l'état de sauvegarde précédent."
- )
+ MENU_ENUM_SUBLABEL_STATE_SLOT,
+ "Changer l'emplacement de sauvegarde instantanée actuellement sélectionné."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_ACCOUNTS_RETRO_ACHIEVEMENTS,
- "Service de RetroSuccès (RetroAchievements). Pour plus d'informations, veuillez visiter http://retroachievements.org"
- )
+ MENU_ENUM_SUBLABEL_UNDO_LOAD_STATE,
+ "Si une sauvegarde instantanée a été chargée, le contenu reviendra à l'état avant le chargement."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_ACCOUNTS_LIST,
- "Gérer les comptes actuellement configurés."
- )
+ MENU_ENUM_SUBLABEL_UNDO_SAVE_STATE,
+ "Si une sauvegarde instantanée a été écrasée, elle sera restaurée à l'état de sauvegarde précédent."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_META_REWIND,
- "Gérer les réglages de rembobinage."
- )
+ MENU_ENUM_SUBLABEL_ACCOUNTS_RETRO_ACHIEVEMENTS,
+ "Service de RetroSuccès (RetroAchievements). Pour plus d'informations, veuillez visiter http://retroachievements.org"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_META_CHEAT_DETAILS,
- "Gérer les réglages de cheat."
- )
+ MENU_ENUM_SUBLABEL_ACCOUNTS_LIST,
+ "Gérer les comptes actuellement configurés."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_META_CHEAT_SEARCH,
- "Lancer ou continuer la recherche de cheat codes."
- )
+ MENU_ENUM_SUBLABEL_INPUT_META_REWIND,
+ "Gérer les réglages de rembobinage."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_RESTART_CONTENT,
- "Redémarrer le contenu depuis le début."
- )
+ MENU_ENUM_SUBLABEL_INPUT_META_CHEAT_DETAILS,
+ "Gérer les réglages de cheat."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CORE,
- "Enregistrer un fichier de configuration de remplacement qui s'appliquera à tout le contenu chargé avec ce cœur. Aura la priorité sur la configuration principale."
- )
+ MENU_ENUM_SUBLABEL_INPUT_META_CHEAT_SEARCH,
+ "Lancer ou continuer la recherche de cheat codes."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CONTENT_DIR,
- "Enregistrer un fichier de configuration de remplacement qui s'appliquera à tout le contenu chargé depuis le même dossier que le fichier actuel. Aura la priorité sur la configuration principale."
- )
+ MENU_ENUM_SUBLABEL_RESTART_CONTENT,
+ "Redémarrer le contenu depuis le début."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SAVE_CURRENT_CONFIG_OVERRIDE_GAME,
- "Enregistrer un fichier de configuration de remplacement qui s'appliquera uniquement au contenu actuel. Aura la priorité sur la configuration principale."
- )
+ MENU_ENUM_SUBLABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CORE,
+ "Enregistrer un fichier de configuration de remplacement qui s'appliquera à tout le contenu chargé avec ce cœur. Aura la priorité sur la configuration principale."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CORE_CHEAT_OPTIONS,
- "Configurer des cheat codes."
- )
+ MENU_ENUM_SUBLABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CONTENT_DIR,
+ "Enregistrer un fichier de configuration de remplacement qui s'appliquera à tout le contenu chargé depuis le même dossier que le fichier actuel. Aura la priorité sur la configuration principale."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SHADER_OPTIONS,
- "Configurer des shaders pour améliorer visuellement l'image."
- )
+ MENU_ENUM_SUBLABEL_SAVE_CURRENT_CONFIG_OVERRIDE_GAME,
+ "Enregistrer un fichier de configuration de remplacement qui s'appliquera uniquement au contenu actuel. Aura la priorité sur la configuration principale."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CORE_INPUT_REMAPPING_OPTIONS,
- "Modifier les contrôles pour le contenu en cours d'exécution."
- )
+ MENU_ENUM_SUBLABEL_CORE_CHEAT_OPTIONS,
+ "Configurer des cheat codes."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CORE_OPTIONS,
- "Modifier les options pour le contenu en cours d'exécution."
- )
+ MENU_ENUM_SUBLABEL_SHADER_OPTIONS,
+ "Configurer des shaders pour améliorer visuellement l'image."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SHOW_ADVANCED_SETTINGS,
- "Affiche les réglages avancés pour les utilisateurs expérimentés (masqués par défaut)."
- )
+ MENU_ENUM_SUBLABEL_CORE_INPUT_REMAPPING_OPTIONS,
+ "Modifier les contrôles pour le contenu en cours d'exécution."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_THREADED_DATA_RUNLOOP_ENABLE,
- "Effectue des tâches sur un fil d'exécution distinct."
- )
+ MENU_ENUM_SUBLABEL_CORE_OPTIONS,
+ "Modifier les options pour le contenu en cours d'exécution."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_PLAYLIST_ENTRY_REMOVE,
- "Autorise l'utilisateur à supprimer des entrées dans les listes de lecture."
- )
+ MENU_ENUM_SUBLABEL_SHOW_ADVANCED_SETTINGS,
+ "Affiche les réglages avancés pour les utilisateurs expérimentés (masqués par défaut)."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SYSTEM_DIRECTORY,
- "Définit le dossier système. Les cœurs peuvent requérir ce répertoire pour charger des BIOS, des configurations spécifiques au système, etc."
- )
+ MENU_ENUM_SUBLABEL_THREADED_DATA_RUNLOOP_ENABLE,
+ "Effectue des tâches sur un fil d'exécution distinct."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_RGUI_BROWSER_DIRECTORY,
- "Définit le dossier de départ du navigateur de fichiers."
- )
+ MENU_ENUM_SUBLABEL_PLAYLIST_ENTRY_REMOVE,
+ "Autorise l'utilisateur à supprimer des entrées dans les listes de lecture."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CONTENT_DIR,
- "Généralement défini par les développeurs qui compilent les applications libretro/RetroArch pour pointer vers des assets."
- )
+ MENU_ENUM_SUBLABEL_SYSTEM_DIRECTORY,
+ "Définit le dossier système. Les cœurs peuvent requérir ce répertoire pour charger des BIOS, des configurations spécifiques au système, etc."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_DYNAMIC_WALLPAPERS_DIRECTORY,
- "Dossier de stockage des fonds d'écran chargés dynamiquement par le menu en fonction du contexte."
- )
+ MENU_ENUM_SUBLABEL_RGUI_BROWSER_DIRECTORY,
+ "Définit le dossier de départ du navigateur de fichiers."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_THUMBNAILS_DIRECTORY,
- "Les miniatures supplémentaires (jaquettes/images diverses, etc.) seront conservées dans ce dossier."
- )
+ MENU_ENUM_SUBLABEL_CONTENT_DIR,
+ "Généralement défini par les développeurs qui compilent les applications libretro/RetroArch pour pointer vers des assets."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_RGUI_CONFIG_DIRECTORY,
- "Définit le dossier de départ du navigateur de configurations du menu."
- )
+ MENU_ENUM_SUBLABEL_DYNAMIC_WALLPAPERS_DIRECTORY,
+ "Dossier de stockage des fonds d'écran chargés dynamiquement par le menu en fonction du contexte."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_INPUT_LATENCY_FRAMES_MIN,
- "Nombre d'images de latence des entrées que le jeu en réseau doit utiliser pour masquer la latence du réseau. Réduit les variations de la latence et rend le jeu en réseau moins gourmand en ressources processeur, aux dépens d'une latence des entrées notable."
- )
+ MENU_ENUM_SUBLABEL_THUMBNAILS_DIRECTORY,
+ "Les miniatures supplémentaires (jaquettes/images diverses, etc.) seront conservées dans ce dossier."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_INPUT_LATENCY_FRAMES_RANGE,
- "Plage d'images de latence des entrées pouvant être utilisée pour masquer la latence du réseau. Réduit les variations de la latence et rend le jeu en réseau moins gourmand en ressources processeur, aux dépens d'une latence des entrées imprévisible."
- )
+ MENU_ENUM_SUBLABEL_RGUI_CONFIG_DIRECTORY,
+ "Définit le dossier de départ du navigateur de configurations du menu."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_DISK_CYCLE_TRAY_STATUS,
- "Faire défiler l'état du disque actuel. Si le disque est inséré, il sera éjecté. Si le disque n'a pas été inséré, il sera inséré. "
- )
+ MENU_ENUM_SUBLABEL_NETPLAY_INPUT_LATENCY_FRAMES_MIN,
+ "Nombre d'images de latence des entrées que le jeu en réseau doit utiliser pour masquer la latence du réseau. Réduit les variations de la latence et rend le jeu en réseau moins gourmand en ressources processeur, aux dépens d'une latence des entrées notable."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_DISK_INDEX,
- "Changer le numéro du disque."
- )
+ MENU_ENUM_SUBLABEL_NETPLAY_INPUT_LATENCY_FRAMES_RANGE,
+ "Plage d'images de latence des entrées pouvant être utilisée pour masquer la latence du réseau. Réduit les variations de la latence et rend le jeu en réseau moins gourmand en ressources processeur, aux dépens d'une latence des entrées imprévisible."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_DISK_OPTIONS,
- "Gestionnaire d'images disque."
- )
+ MENU_ENUM_SUBLABEL_DISK_CYCLE_TRAY_STATUS,
+ "Faire défiler l'état du disque actuel. Si le disque est inséré, il sera éjecté. Si le disque n'a pas été inséré, il sera inséré. "
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_DISK_IMAGE_APPEND,
- "Sélectionner une image disque à insérer."
- )
+ MENU_ENUM_SUBLABEL_DISK_INDEX,
+ "Changer le numéro du disque."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_ENUM_THROTTLE_FRAMERATE,
- "S'assure que le nombre d'images par seconde est plafonné dans le menu."
- )
+ MENU_ENUM_SUBLABEL_DISK_OPTIONS,
+ "Gestionnaire d'images disque."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VRR_RUNLOOP_ENABLE,
- "Élimine les déviations par rapport au timing requis par le cœur. Utilisez cette option pour les écrans à fréquence de rafraîchissement variable, G-Sync, FreeSync."
- )
+ MENU_ENUM_SUBLABEL_DISK_IMAGE_APPEND,
+ "Sélectionner une image disque à insérer."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_XMB_LAYOUT,
- "Sélectionner une mise en page différente pour l'interface XMB."
- )
+ MENU_ENUM_SUBLABEL_MENU_ENUM_THROTTLE_FRAMERATE,
+ "S'assure que le nombre d'images par seconde est plafonné dans le menu."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_XMB_THEME,
- "Sélectionner un thème d'icônes différent pour RetroArch."
- )
+ MENU_ENUM_SUBLABEL_VRR_RUNLOOP_ENABLE,
+ "Élimine les déviations par rapport au timing requis par le cœur. Utilisez cette option pour les écrans à fréquence de rafraîchissement variable, G-Sync, FreeSync."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_XMB_SHADOWS_ENABLE,
- "Ajouter des ombres portées pour toutes les icônes.\n"
- "Cette option aura un impact mineur sur les performances."
- )
+ MENU_ENUM_SUBLABEL_XMB_LAYOUT,
+ "Sélectionner une mise en page différente pour l'interface XMB."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MATERIALUI_MENU_COLOR_THEME,
- "Sélectionner un autre thème de couleur pour le menu."
- )
+ MENU_ENUM_SUBLABEL_XMB_THEME,
+ "Sélectionner un thème d'icônes différent pour RetroArch."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_WALLPAPER_OPACITY,
- "Modifier l'opacité du fond d'écran."
- )
+ MENU_ENUM_SUBLABEL_XMB_SHADOWS_ENABLE,
+ "Ajouter des ombres portées pour toutes les icônes.\n"
+ "Cette option aura un impact mineur sur les performances."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_XMB_MENU_COLOR_THEME,
- "Sélectionner un autre thème de couleur pour le menu."
- )
+ MENU_ENUM_SUBLABEL_MATERIALUI_MENU_COLOR_THEME,
+ "Sélectionner un autre thème de couleur pour le menu."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_XMB_RIBBON_ENABLE,
- "Sélectionner un effet d'arrière-plan animé. Peut être gourmand en processeur graphique selon l'effet. Si les performances ne sont pas satisfaisantes, veuillez le désactiver ou revenir à un effet plus simple."
- )
+ MENU_ENUM_SUBLABEL_MENU_WALLPAPER_OPACITY,
+ "Modifier l'opacité du fond d'écran."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_XMB_FONT,
- "Sélectionner une police principale différente à utiliser pour le menu."
- )
+ MENU_ENUM_SUBLABEL_XMB_MENU_COLOR_THEME,
+ "Sélectionner un autre thème de couleur pour le menu."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CONTENT_SHOW_FAVORITES,
- "Affiche l'onglet des favoris dans le menu principal."
- )
+ MENU_ENUM_SUBLABEL_XMB_RIBBON_ENABLE,
+ "Sélectionner un effet d'arrière-plan animé. Peut être gourmand en processeur graphique selon l'effet. Si les performances ne sont pas satisfaisantes, veuillez le désactiver ou revenir à un effet plus simple."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CONTENT_SHOW_IMAGES,
- "Affiche l'onglet des images dans le menu principal."
- )
+ MENU_ENUM_SUBLABEL_XMB_FONT,
+ "Sélectionner une police principale différente à utiliser pour le menu."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CONTENT_SHOW_MUSIC,
- "Affiche l'onglet de la musique dans le menu principal."
- )
+ MENU_ENUM_SUBLABEL_CONTENT_SHOW_FAVORITES,
+ "Affiche l'onglet des favoris dans le menu principal."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CONTENT_SHOW_IMAGES,
+ "Affiche l'onglet des images dans le menu principal."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CONTENT_SHOW_MUSIC,
+ "Affiche l'onglet de la musique dans le menu principal."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CONTENT_SHOW_VIDEO,
+ "Affiche l'onglet des vidéos dans le menu principal."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CONTENT_SHOW_NETPLAY,
+ "Affiche l'onglet de jeu en réseau dans le menu principal."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CONTENT_SHOW_SETTINGS,
+ "Affiche l'onglet des réglages dans le menu principal."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CONTENT_SHOW_HISTORY,
+ "Affiche l'onglet d'historique récent dans le menu principal."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CONTENT_SHOW_ADD,
+ "Affiche l'onglet d'importation de contenu dans le menu principal."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CONTENT_SHOW_PLAYLISTS,
+ "Affiche les onglets des listes de lecture dans le menu principal."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_RGUI_SHOW_START_SCREEN,
+ "Affiche à nouveau l'écran de configuration initiale dans le menu au prochain lancement. Cette option est automatiquement désactivée après le premier démarrage du programme."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_MATERIALUI_MENU_HEADER_OPACITY,
+ "Modifier l'opacité du graphique d'en-tête."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY,
+ "Modifier l'opacité du graphique de pied de page."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY,
+ "Tous les fichiers téléchargés seront conservés dans ce dossier."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_INPUT_REMAPPING_DIRECTORY,
+ "Les fichiers de remappage des touches seront conservés dans ce dossier."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_LIBRETRO_DIR_PATH,
+ "Dossier de recherche de contenu/cœurs."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_LIBRETRO_INFO_PATH,
+ "Les fichiers d'informations de l'application/des cœurs seront conservés ici."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_JOYPAD_AUTOCONFIG_DIR,
+ "Lorsqu'une manette est connectée, cette manette sera configurée automatiquement si un fichier de configuration correspondant est présent dans ce dossier."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_PLAYLIST_DIRECTORY,
+ "Les listes de lecture seront conservées dans ce dossier."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CACHE_DIRECTORY,
+ "Si un dossier est défini, le contenu extrait temporairement (par exemple à partir d'archives) sera extrait dans ce dossier."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CURSOR_DIRECTORY,
+ "Les requêtes sauvegardées seront conservées dans ce dossier."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CONTENT_SHOW_VIDEO,
- "Affiche l'onglet des vidéos dans le menu principal."
- )
+ MENU_ENUM_SUBLABEL_CONTENT_DATABASE_DIRECTORY,
+ "Les bases de données seront conservées dans ce dossier."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CONTENT_SHOW_NETPLAY,
- "Affiche l'onglet de jeu en réseau dans le menu principal."
- )
+ MENU_ENUM_SUBLABEL_ASSETS_DIRECTORY,
+ "Cet emplacement est requis par défaut lorsque les interfaces de menu tentent de rechercher des assets chargeables, etc."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CONTENT_SHOW_SETTINGS,
- "Affiche l'onglet des réglages dans le menu principal."
- )
+ MENU_ENUM_SUBLABEL_SAVEFILE_DIRECTORY,
+ "Les fichiers de sauvegarde seront conservés dans ce dossier. Si aucun dossier n'est défini, ils seront sauvegardés dans le même dossier que le contenu."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CONTENT_SHOW_HISTORY,
- "Affiche l'onglet d'historique récent dans le menu principal."
- )
+ MENU_ENUM_SUBLABEL_SAVESTATE_DIRECTORY,
+ "Les fichiers de sauvegarde instantanée seront conservés dans ce dossier. Si aucun dossier n'est défini, ils seront sauvegardés dans le même dossier que le contenu."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CONTENT_SHOW_ADD,
- "Affiche l'onglet d'importation de contenu dans le menu principal."
- )
+ MENU_ENUM_SUBLABEL_SCREENSHOT_DIRECTORY,
+ "Les captures d'écran seront conservées dans ce dossier."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CONTENT_SHOW_PLAYLISTS,
- "Affiche les onglets des listes de lecture dans le menu principal."
- )
+ MENU_ENUM_SUBLABEL_OVERLAY_DIRECTORY,
+ "Les surimpressions seront conservées dans ce dossier pour un accès facile."
+ )
+#ifdef HAVE_VIDEO_LAYOUT
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_LAYOUT_DIRECTORY,
+ "Les dispositions d'affichage seront conservées dans ce dossier pour un accès facile."
+ )
+#endif
MSG_HASH(
- MENU_ENUM_SUBLABEL_RGUI_SHOW_START_SCREEN,
- "Affiche à nouveau l'écran de configuration initiale dans le menu au prochain lancement. Cette option est automatiquement désactivée après le premier démarrage du programme."
- )
+ MENU_ENUM_SUBLABEL_CHEAT_DATABASE_PATH,
+ "Les fichiers de cheats seront conservés dans ce dossier."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MATERIALUI_MENU_HEADER_OPACITY,
- "Modifier l'opacité du graphique d'en-tête."
- )
+ MENU_ENUM_SUBLABEL_AUDIO_FILTER_DIR,
+ "Les fichiers de filtres audio DSP seront conservés dans ce dossier."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MATERIALUI_MENU_FOOTER_OPACITY,
- "Modifier l'opacité du graphique de pied de page."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_FILTER_DIR,
+ "Les fichiers de filtres vidéo basés sur le processeur seront conservés dans ce dossier."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CORE_ASSETS_DIRECTORY,
- "Tous les fichiers téléchargés seront conservés dans ce dossier."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_DIR,
+ "Les fichiers de shaders vidéo basés sur le processeur graphique seront conservés dans ce dossier pour un accès facile."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_INPUT_REMAPPING_DIRECTORY,
- "Les fichiers de remappage des touches seront conservés dans ce dossier."
- )
+ MENU_ENUM_SUBLABEL_RECORDING_OUTPUT_DIRECTORY,
+ "Les enregistrements seront placés dans ce dossier."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_LIBRETRO_DIR_PATH,
- "Dossier de recherche de contenu/cœurs."
- )
+ MENU_ENUM_SUBLABEL_RECORDING_CONFIG_DIRECTORY,
+ "Les configurations d'enregistrement seront conservées ici."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_LIBRETRO_INFO_PATH,
- "Les fichiers d'informations de l'application/des cœurs seront conservés ici."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_FONT_PATH,
+ "Sélectionner une police différente pour les notifications à l'écran."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_JOYPAD_AUTOCONFIG_DIR,
- "Lorsqu'une manette est connectée, cette manette sera configurée automatiquement si un fichier de configuration correspondant est présent dans ce dossier."
- )
+ MENU_ENUM_SUBLABEL_SHADER_APPLY_CHANGES,
+ "Les modifications apportées à la configuration du shader prendront effet immédiatement. Utilisez cette option si vous avez changé la quantité de passages de shader, le filtrage, l'échelle, etc."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_PLAYLIST_DIRECTORY,
- "Les listes de lecture seront conservées dans ce dossier."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_NUM_PASSES,
+ "Augmenter ou diminuer le nombre de passages du pipeline des shaders. Vous pouvez assigner un shader distinct à chaque passage du pipeline et configurer son échelle et son mode de filtrage."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CACHE_DIRECTORY,
- "Si un dossier est défini, le contenu extrait temporairement (par exemple à partir d'archives) sera extrait dans ce dossier."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET,
+ "Charger un préréglage de shaders. Le pipeline des shaders sera automatiquement configuré."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CURSOR_DIRECTORY,
- "Les requêtes sauvegardées seront conservées dans ce dossier."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_SAVE,
+ "Save the current shader preset."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CONTENT_DATABASE_DIRECTORY,
- "Les bases de données seront conservées dans ce dossier."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_SAVE_AS,
+ "Enregistrer les réglages de shaders actuels en tant que nouveaux préréglages de shaders."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_ASSETS_DIRECTORY,
- "Cet emplacement est requis par défaut lorsque les interfaces de menu tentent de rechercher des assets chargeables, etc."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_SAVE_CORE,
+ "Enregistrer les réglages de shaders actuels en tant que réglages par défaut pour cette application/ce cœur."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SAVEFILE_DIRECTORY,
- "Les fichiers de sauvegarde seront conservés dans ce dossier. Si aucun dossier n'est défini, ils seront sauvegardés dans le même dossier que le contenu."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_SAVE_PARENT,
+ "Enregistrer les réglages de shaders actuels en tant que réglages par défaut pour tous les fichiers du dossier de contenu actuel."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SAVESTATE_DIRECTORY,
- "Les fichiers de sauvegarde instantanée seront conservés dans ce dossier. Si aucun dossier n'est défini, ils seront sauvegardés dans le même dossier que le contenu."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_SAVE_GAME,
+ "Enregistrer les réglages de shaders actuels en tant que réglages par défaut pour ce contenu."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SCREENSHOT_DIRECTORY,
- "Les captures d'écran seront conservées dans ce dossier."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_SAVE_GLOBAL,
+ "Save the current shader settings as the default global setting."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_OVERLAY_DIRECTORY,
- "Les surimpressions seront conservées dans ce dossier pour un accès facile."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_PARAMETERS,
+ "Modifier le shader actuel directement. Les modifications ne seront pas enregistrées dans le fichier de préréglages."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_DATABASE_PATH,
- "Les fichiers de cheats seront conservés dans ce dossier."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_PARAMETERS,
+ "Modifier les préréglages de shaders actuellement utilisés dans le menu."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_FILTER_DIR,
- "Les fichiers de filtres audio DSP seront conservés dans ce dossier."
- )
+ MENU_ENUM_SUBLABEL_CHEAT_NUM_PASSES,
+ "Augmenter ou diminuer le nombre de cheats."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_FILTER_DIR,
- "Les fichiers de filtres vidéo basés sur le processeur seront conservés dans ce dossier."
- )
+ MENU_ENUM_SUBLABEL_CHEAT_APPLY_CHANGES,
+ "Les changements du cheat prendront effet immédiatement."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SHADER_DIR,
- "Les fichiers de shaders vidéo basés sur le processeur graphique seront conservés dans ce dossier pour un accès facile."
- )
+ MENU_ENUM_SUBLABEL_CHEAT_START_SEARCH,
+ "Lancer la recherche d'un nouveau cheat. Le nombre de bits peut être changé."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_RECORDING_OUTPUT_DIRECTORY,
- "Les enregistrements seront placés dans ce dossier."
- )
+ MENU_ENUM_SUBLABEL_CHEAT_CONTINUE_SEARCH,
+ "Continuer la recherche d'un nouveau cheat."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_RECORDING_CONFIG_DIRECTORY,
- "Les configurations d'enregistrement seront conservées ici."
- )
+ MENU_ENUM_SUBLABEL_CHEAT_FILE_LOAD,
+ "Charger un fichier de cheats et remplacer les cheats existants."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_FONT_PATH,
- "Sélectionner une police différente pour les notifications à l'écran."
- )
+ MENU_ENUM_SUBLABEL_CHEAT_FILE_LOAD_APPEND,
+ "Charger un fichier de cheats et l'ajouter aux cheats existants."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SHADER_APPLY_CHANGES,
- "Les modifications apportées à la configuration du shader prendront effet immédiatement. Utilisez cette option si vous avez changé la quantité de passages de shader, le filtrage, l'échelle, etc."
- )
+ MENU_ENUM_SUBLABEL_CHEAT_FILE_SAVE_AS,
+ "Enregistrer les cheats actuels en tant que fichier de sauvegarde."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SHADER_NUM_PASSES,
- "Augmenter ou diminuer le nombre de passages du pipeline des shaders. Vous pouvez assigner un shader distinct à chaque passage du pipeline et configurer son échelle et son mode de filtrage."
- )
+ MENU_ENUM_SUBLABEL_CONTENT_SETTINGS,
+ "Accéder rapidement à tous les réglages relatifs au jeu."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET,
- "Charger un préréglage de shaders. Le pipeline des shaders sera automatiquement configuré."
- )
+ MENU_ENUM_SUBLABEL_CORE_INFORMATION,
+ "Affiche les informations relatives à l'application/au cœur."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_SAVE_AS,
- "Enregistrer les réglages de shaders actuels en tant que nouveaux préréglages de shaders."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_ASPECT_RATIO,
+ "Valeur en virgule flottante du rapport d'aspect (largeur/hauteur), si le rapport d'aspect est réglé sur 'Configurer'."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_SAVE_CORE,
- "Enregistrer les réglages de shaders actuels en tant que réglages par défaut pour cette application/ce cœur."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_HEIGHT,
+ "Hauteur de la fenêtre d'affichage si le rapport d'aspect est réglé sur 'Personnalisé'."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_SAVE_PARENT,
- "Enregistrer les réglages de shaders actuels en tant que réglages par défaut pour tous les fichiers du dossier de contenu actuel."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_WIDTH,
+ "Largeur de la fenêtre d'affichage si le rapport d'aspect est réglé sur 'Personnalisé'."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_SAVE_GAME,
- "Enregistrer les réglages de shaders actuels en tant que réglages par défaut pour ce contenu."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_X,
+ "Décalage de la fenêtre d'affichage sur l'axe X. Cette option sera ignorée si l'option 'Échelle à l'entier' est activée. Elle sera alors centrée automatiquement."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SHADER_PARAMETERS,
- "Modifier le shader actuel directement. Les modifications ne seront pas enregistrées dans le fichier de préréglages."
- )
+ MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_Y,
+ "Décalage de la fenêtre d'affichage sur l'axe Y. Cette option sera ignorée si l'option 'Échelle à l'entier' est activée. Elle sera alors centrée automatiquement."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_PARAMETERS,
- "Modifier les préréglages de shaders actuellement utilisés dans le menu."
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_USE_MITM_SERVER,
+ "Utiliser un serveur relais"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_NUM_PASSES,
- "Augmenter ou diminuer le nombre de cheats."
- )
+ MENU_ENUM_SUBLABEL_NETPLAY_USE_MITM_SERVER,
+ "Transférer les connexions de jeu en réseau via un serveur intermédiaire. Utile si l'hôte est derrière un pare-feu ou a des problèmes de NAT/UPnP."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_APPLY_CHANGES,
- "Les changements du cheat prendront effet immédiatement."
- )
+ MENU_ENUM_LABEL_VALUE_NETPLAY_MITM_SERVER,
+ "Emplacement du serveur relais"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_START_SEARCH,
- "Lancer la recherche d'un nouveau cheat. Le nombre de bits peut être changé."
- )
+ MENU_ENUM_SUBLABEL_NETPLAY_MITM_SERVER,
+ "Choisissez un serveur de relais spécifique à utiliser. Les zones géographiques plus proches ont tendance à avoir une latence plus faible."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_CONTINUE_SEARCH,
- "Continuer la recherche d'un nouveau cheat."
- )
+ MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER,
+ "Ajouter au mixeur"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_FILE_LOAD,
- "Charger un fichier de cheats et remplacer les cheats existants."
- )
+ MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_PLAY,
+ "Ajouter au mixeur et lire"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_FILE_LOAD_APPEND,
- "Charger un fichier de cheats et l'ajouter aux cheats existants."
- )
+ MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION,
+ "Ajouter au mixeur"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CHEAT_FILE_SAVE_AS,
- "Enregistrer les cheats actuels en tant que fichier de sauvegarde."
- )
+ MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY,
+ "Ajouter au mixeur et lire"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CONTENT_SETTINGS,
- "Accéder rapidement à tous les réglages relatifs au jeu."
- )
+ MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE,
+ "Filtrer par cœur actif"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CORE_INFORMATION,
- "Affiche les informations relatives à l'application/au cœur."
- )
+ MSG_AUDIO_MIXER_VOLUME,
+ "Volume du mixeur audio global"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_ASPECT_RATIO,
- "Valeur en virgule flottante du rapport d'aspect (largeur/hauteur), si le rapport d'aspect est réglé sur 'Configurer'."
- )
+ MENU_ENUM_SUBLABEL_AUDIO_MIXER_VOLUME,
+ "Volume du mixeur audio global (en dB). 0 dB est le volume normal, et aucun gain n'est appliqué."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_HEIGHT,
- "Hauteur de la fenêtre d'affichage si le rapport d'aspect est réglé sur 'Personnalisé'."
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_MIXER_VOLUME,
+ "Gain de volume du mixeur (dB)"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_WIDTH,
- "Largeur de la fenêtre d'affichage si le rapport d'aspect est réglé sur 'Personnalisé'."
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_MIXER_MUTE,
+ "Couper le son du mixeur"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_X,
- "Décalage de la fenêtre d'affichage sur l'axe X. Cette option sera ignorée si l'option 'Échelle à l'entier' est activée. Elle sera alors centrée automatiquement."
- )
+ MENU_ENUM_SUBLABEL_AUDIO_MIXER_MUTE,
+ "Couper/rétablir le son du mixeur audio."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_Y,
- "Décalage de la fenêtre d'affichage sur l'axe Y. Cette option sera ignorée si l'option 'Échelle à l'entier' est activée. Elle sera alors centrée automatiquement."
- )
+ MENU_ENUM_LABEL_VALUE_MENU_SHOW_ONLINE_UPDATER,
+ "Afficher 'Mise à jour en ligne'"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_USE_MITM_SERVER,
- "Utiliser un serveur relais"
- )
+ MENU_ENUM_SUBLABEL_MENU_SHOW_ONLINE_UPDATER,
+ "Afficher/masquer l'option 'Mise à jour en ligne'."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_USE_MITM_SERVER,
- "Transférer les connexions de jeu en réseau via un serveur intermédiaire. Utile si l'hôte est derrière un pare-feu ou a des problèmes de NAT/UPnP."
- )
+ MENU_ENUM_LABEL_VALUE_MENU_SHOW_LEGACY_THUMBNAIL_UPDATER,
+ "Show Legacy Thumbnails Updater"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NETPLAY_MITM_SERVER,
- "Emplacement du serveur relais"
- )
+ MENU_ENUM_SUBLABEL_MENU_SHOW_LEGACY_THUMBNAIL_UPDATER,
+ "Show/hide the ability to download legacy thumbnail packages."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_NETPLAY_MITM_SERVER,
- "Choisissez un serveur de relais spécifique à utiliser. Les zones géographiques plus proches ont tendance à avoir une latence plus faible."
- )
+ MENU_ENUM_LABEL_VALUE_MENU_VIEWS_SETTINGS,
+ "Vues"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER,
- "Ajouter au mixeur"
- )
+ MENU_ENUM_SUBLABEL_MENU_VIEWS_SETTINGS,
+ "Afficher ou masquer des éléments dans l'écran du menu."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_PLAY,
- "Ajouter au mixeur et lire"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_SHOW_CORE_UPDATER,
+ "Afficher la mise à jour des cœurs"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION,
- "Ajouter au mixeur"
- )
+ MENU_ENUM_SUBLABEL_MENU_SHOW_CORE_UPDATER,
+ "Afficher/masquer la possibilité de mettre à jour les cœurs (et les fichiers d'informations des cœurs)."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ADD_TO_MIXER_AND_COLLECTION_AND_PLAY,
- "Ajouter au mixeur et lire"
- )
+ MSG_PREPARING_FOR_CONTENT_SCAN,
+ "Préparation à l'analyse du contenu..."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE,
- "Filtrer par cœur actif"
- )
+ MENU_ENUM_LABEL_VALUE_CORE_DELETE,
+ "Supprimer le cœur"
+ )
MSG_HASH(
- MSG_AUDIO_MIXER_VOLUME,
- "Volume du mixeur audio global"
- )
+ MENU_ENUM_SUBLABEL_CORE_DELETE,
+ "Retirer ce cœur du disque."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_MIXER_VOLUME,
- "Volume du mixeur audio global (en dB). 0 dB est le volume normal, et aucun gain n'est appliqué."
- )
+ MENU_ENUM_LABEL_VALUE_MENU_FRAMEBUFFER_OPACITY,
+ "Opacité de l'image en mémoire (Frame Buffer) "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_MIXER_VOLUME,
- "Gain de volume du mixeur (dB)"
- )
+ MENU_ENUM_SUBLABEL_MENU_FRAMEBUFFER_OPACITY,
+ "Modifier l'opacité de l'image en mémoire (Frame Buffer)."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_MIXER_MUTE,
- "Couper le son du mixeur"
- )
+ MENU_ENUM_LABEL_VALUE_GOTO_FAVORITES,
+ "Favoris"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_MIXER_MUTE,
- "Couper/rétablir le son du mixeur audio."
- )
+ MENU_ENUM_SUBLABEL_GOTO_FAVORITES,
+ "Le contenu que vous avez ajouté aux 'Favoris' apparaîtra ici."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_SHOW_ONLINE_UPDATER,
- "Afficher 'Mise à jour en ligne'"
- )
+ MENU_ENUM_LABEL_VALUE_GOTO_MUSIC,
+ "Musique"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_SHOW_ONLINE_UPDATER,
- "Afficher/masquer l'option 'Mise à jour en ligne'."
- )
+ MENU_ENUM_SUBLABEL_GOTO_MUSIC,
+ "La musique précédemment jouée apparaîtra ici."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_VIEWS_SETTINGS,
- "Vues"
- )
+ MENU_ENUM_LABEL_VALUE_GOTO_IMAGES,
+ "Images"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_VIEWS_SETTINGS,
- "Afficher ou masquer des éléments dans l'écran du menu."
- )
+ MENU_ENUM_SUBLABEL_GOTO_IMAGES,
+ "Les images visionnées précédemment apparaîtront ici."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_SHOW_CORE_UPDATER,
- "Afficher la mise à jour des cœurs"
- )
+ MENU_ENUM_LABEL_VALUE_GOTO_VIDEO,
+ "Vidéos"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_SHOW_CORE_UPDATER,
- "Afficher/masquer la possibilité de mettre à jour les cœurs (et les fichiers d'informations des cœurs)."
- )
+ MENU_ENUM_SUBLABEL_GOTO_VIDEO,
+ "Les vidéos précédemment lues apparaîtront ici."
+ )
MSG_HASH(
- MSG_PREPARING_FOR_CONTENT_SCAN,
- "Préparation à l'analyse du contenu..."
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_ICONS_ENABLE,
+ "Icônes du menu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CORE_DELETE,
- "Supprimer le cœur"
- )
+ MENU_ENUM_SUBLABEL_MATERIALUI_ICONS_ENABLE,
+ "Affiche les icônes à gauche des entrées du menu."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CORE_DELETE,
- "Retirer ce cœur du disque."
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_OPTIMIZE_LANDSCAPE_LAYOUT,
+ "Optimiser pour l'affichage en mode paysage"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_FRAMEBUFFER_OPACITY,
- "Opacité de l'image en mémoire (Frame Buffer) "
- )
+ MENU_ENUM_SUBLABEL_MATERIALUI_OPTIMIZE_LANDSCAPE_LAYOUT,
+ "Ajuste automatiquement la disposition du menu pour être mieux adapté à l'utilisation d'une orientation d'écran en mode paysage."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_FRAMEBUFFER_OPACITY,
- "Modifier l'opacité de l'image en mémoire (Frame Buffer)."
- )
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_AUTO_ROTATE_NAV_BAR,
+ "Rotation automatique de la barre de navigation"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_GOTO_FAVORITES,
- "Favoris"
- )
+ MENU_ENUM_SUBLABEL_MATERIALUI_AUTO_ROTATE_NAV_BAR,
+ "Déplace automatiquement la barre de navigation vers le côté droit de l'écran lors de l'utilisation d'une orientation d'écran en mode paysage."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_GOTO_FAVORITES,
- "Le contenu que vous avez ajouté aux 'Favoris' apparaîtra ici."
- )
+ MENU_ENUM_LABEL_VALUE_XMB_MAIN_MENU_ENABLE_SETTINGS,
+ "Onglet Réglages"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_GOTO_MUSIC,
- "Musique"
- )
+ MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_SETTINGS_PASSWORD,
+ "Définir le mot de passe pour l'activation de l'onglet Réglages"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_GOTO_MUSIC,
- "La musique précédemment jouée apparaîtra ici."
- )
+ MSG_INPUT_ENABLE_SETTINGS_PASSWORD,
+ "Entrer le mot de passe"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_GOTO_IMAGES,
- "Images"
- )
+ MSG_INPUT_ENABLE_SETTINGS_PASSWORD_OK,
+ "Mot de passe correct."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_GOTO_IMAGES,
- "Les images visionnées précédemment apparaîtront ici."
- )
+ MSG_INPUT_ENABLE_SETTINGS_PASSWORD_NOK,
+ "Mot de passe incorrect."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_GOTO_VIDEO,
- "Vidéos"
- )
+ MENU_ENUM_SUBLABEL_XMB_MAIN_MENU_ENABLE_SETTINGS,
+ "Active l'onglet Réglages. Un redémarrage est requis pour que l'onglet apparaisse."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_GOTO_VIDEO,
- "Les vidéos précédemment lues apparaîtront ici."
- )
+ MENU_ENUM_SUBLABEL_CONTENT_SHOW_SETTINGS_PASSWORD,
+ "La saisie d'un mot de passe en masquant l'onglet des paramètres permet de le restaurer ultérieurement, en accédant à l'onglet Menu principal, en sélectionnant Activer l'onglet des réglages et en entrant le mot de passe."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MATERIALUI_ICONS_ENABLE,
- "Icônes du menu"
- )
+ MENU_ENUM_SUBLABEL_PLAYLIST_ENTRY_RENAME,
+ "Autoriser l'utilisateur à renommer des entrées dans les listes de lecture."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MATERIALUI_ICONS_ENABLE,
- "Affiche les icônes à gauche des entrées du menu."
- )
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_ENTRY_RENAME,
+ "Autoriser à renommer des entrées"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_XMB_MAIN_MENU_ENABLE_SETTINGS,
- "Onglet Réglages"
- )
+ MENU_ENUM_SUBLABEL_RENAME_ENTRY,
+ "Renommer l'entrée."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_SETTINGS_PASSWORD,
- "Définir le mot de passe pour l'activation de l'onglet Réglages"
- )
+ MENU_ENUM_LABEL_VALUE_RENAME_ENTRY,
+ "Renommer"
+ )
MSG_HASH(
- MSG_INPUT_ENABLE_SETTINGS_PASSWORD,
- "Entrer le mot de passe"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_SHOW_LOAD_CORE,
+ "Afficher 'Charger un cœur'"
+ )
MSG_HASH(
- MSG_INPUT_ENABLE_SETTINGS_PASSWORD_OK,
- "Mot de passe correct."
- )
+ MENU_ENUM_SUBLABEL_MENU_SHOW_LOAD_CORE,
+ "Afficher/masquer l'option 'Charger un cœur'."
+ )
MSG_HASH(
- MSG_INPUT_ENABLE_SETTINGS_PASSWORD_NOK,
- "Mot de passe incorrect."
- )
+ MENU_ENUM_LABEL_VALUE_MENU_SHOW_LOAD_CONTENT,
+ "Afficher 'Charger du contenu'"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_XMB_MAIN_MENU_ENABLE_SETTINGS,
- "Active l'onglet Réglages. Un redémarrage est requis pour que l'onglet apparaisse."
- )
+ MENU_ENUM_SUBLABEL_MENU_SHOW_LOAD_CONTENT,
+ "Afficher/masquer l'option 'Charger du contenu'."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CONTENT_SHOW_SETTINGS_PASSWORD,
- "La saisie d'un mot de passe en masquant l'onglet des paramètres permet de le restaurer ultérieurement, en accédant à l'onglet Menu principal, en sélectionnant Activer l'onglet des réglages et en entrant le mot de passe."
- )
+ MENU_ENUM_LABEL_VALUE_MENU_SHOW_LOAD_DISC,
+ "Afficher 'Charger un disque'"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_PLAYLIST_ENTRY_RENAME,
- "Autoriser l'utilisateur à renommer des entrées dans les listes de lecture."
- )
+ MENU_ENUM_SUBLABEL_MENU_SHOW_LOAD_DISC,
+ "Afficher/masquer l'option 'Charger un disque'."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PLAYLIST_ENTRY_RENAME,
- "Autoriser à renommer des entrées"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_SHOW_DUMP_DISC,
+ "Afficher 'Importer un disque'"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_RENAME_ENTRY,
- "Renommer l'entrée."
- )
+ MENU_ENUM_SUBLABEL_MENU_SHOW_DUMP_DISC,
+ "Afficher/masquer l'option 'Importer un disque'."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RENAME_ENTRY,
- "Renommer"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_SHOW_INFORMATION,
+ "Afficher 'Informations'"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_SHOW_LOAD_CORE,
- "Afficher 'Charger un cœur'"
- )
+ MENU_ENUM_SUBLABEL_MENU_SHOW_INFORMATION,
+ "Afficher/masquer l'option 'Informations'."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_SHOW_LOAD_CORE,
- "Afficher/masquer l'option 'Charger un cœur'."
- )
+ MENU_ENUM_LABEL_VALUE_MENU_SHOW_CONFIGURATIONS,
+ "Afficher 'Fichiers de configuration'"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_SHOW_LOAD_CONTENT,
- "Afficher 'Charger du contenu'"
- )
+ MENU_ENUM_SUBLABEL_MENU_SHOW_CONFIGURATIONS,
+ "Afficher/masquer l'option 'Fichiers de configuration'."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_SHOW_LOAD_CONTENT,
- "Afficher/masquer l'option 'Charger du contenu'."
- )
+ MENU_ENUM_LABEL_VALUE_MENU_SHOW_HELP,
+ "Afficher 'Aide'"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_SHOW_INFORMATION,
- "Afficher 'Informations'"
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_SHOW_INFORMATION,
- "Afficher/masquer l'option 'Informations'."
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_SHOW_CONFIGURATIONS,
- "Afficher 'Fichiers de configuration'"
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_SHOW_CONFIGURATIONS,
- "Afficher/masquer l'option 'Fichiers de configuration'."
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_SHOW_HELP,
- "Afficher 'Aide'"
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_SHOW_HELP,
- "Afficher/masquer l'option 'Aide'."
- )
+ MENU_ENUM_SUBLABEL_MENU_SHOW_HELP,
+ "Afficher/masquer l'option 'Aide'."
+ )
#ifdef HAVE_LAKKA
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_SHOW_QUIT_RETROARCH,
- "Afficher 'Redémarrer RetroArch'"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_SHOW_QUIT_RETROARCH,
+ "Afficher 'Redémarrer RetroArch'"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_SHOW_QUIT_RETROARCH,
- "Afficher/masquer l'option 'Redémarrer RetroArch'."
- )
+ MENU_ENUM_SUBLABEL_MENU_SHOW_QUIT_RETROARCH,
+ "Afficher/masquer l'option 'Redémarrer RetroArch'."
+ )
#else
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_SHOW_QUIT_RETROARCH,
- "Afficher 'Quitter RetroArch'"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_SHOW_QUIT_RETROARCH,
+ "Afficher 'Quitter RetroArch'"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_SHOW_QUIT_RETROARCH,
- "Afficher/masquer l'option 'Quitter RetroArch'."
- )
+ MENU_ENUM_SUBLABEL_MENU_SHOW_QUIT_RETROARCH,
+ "Afficher/masquer l'option 'Quitter RetroArch'."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MENU_SHOW_RESTART_RETROARCH,
+ "Afficher 'Redémarrer RetroArch'"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_MENU_SHOW_RESTART_RETROARCH,
+ "Afficher/masquer l'option 'Redémarrer RetroArch'."
+ )
#endif
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_SHOW_REBOOT,
- "Afficher 'Redémarrer'"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_SHOW_REBOOT,
+ "Afficher 'Redémarrer'"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_SHOW_REBOOT,
- "Afficher/masquer l'option 'Redémarrer'."
- )
+ MENU_ENUM_SUBLABEL_MENU_SHOW_REBOOT,
+ "Afficher/masquer l'option 'Redémarrer'."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_SHOW_SHUTDOWN,
- "Afficher 'Éteindre'"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_SHOW_SHUTDOWN,
+ "Afficher 'Éteindre'"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_SHOW_SHUTDOWN,
- "Afficher/masquer l'option 'Éteindre'."
- )
+ MENU_ENUM_SUBLABEL_MENU_SHOW_SHUTDOWN,
+ "Afficher/masquer l'option 'Éteindre'."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUICK_MENU_VIEWS_SETTINGS,
- "Menu rapide"
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_VIEWS_SETTINGS,
+ "Menu rapide"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUICK_MENU_VIEWS_SETTINGS,
- "Afficher ou masquer des éléments dans l'écran du menu rapide."
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_VIEWS_SETTINGS,
+ "Afficher ou masquer des éléments dans l'écran du menu rapide."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_TAKE_SCREENSHOT,
- "Afficher 'Capturer l'écran'"
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_TAKE_SCREENSHOT,
+ "Afficher 'Capturer l'écran'"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_TAKE_SCREENSHOT,
- "Afficher/masquer l'option 'Capturer l'écran'."
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_TAKE_SCREENSHOT,
+ "Afficher/masquer l'option 'Capturer l'écran'."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_SAVE_LOAD_STATE,
- "Afficher le chargement/l'enregistrement des sauvegardes instantanées"
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_SAVE_LOAD_STATE,
+ "Afficher le chargement/l'enregistrement des sauvegardes instantanées"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_SAVE_LOAD_STATE,
- "Afficher/masquer les options pour charger/enregistrer une sauvegarde instantanée."
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_SAVE_LOAD_STATE,
+ "Afficher/masquer les options pour charger/enregistrer une sauvegarde instantanée."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_UNDO_SAVE_LOAD_STATE,
- "Afficher l'annulation du chargement/de l'enregistrement des sauvegardes instantanées"
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_UNDO_SAVE_LOAD_STATE,
+ "Afficher l'annulation du chargement/de l'enregistrement des sauvegardes instantanées"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_UNDO_SAVE_LOAD_STATE,
- "Afficher/masquer les options pour annuler le chargement/l'enregistrement d'une sauvegarde instantanée."
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_UNDO_SAVE_LOAD_STATE,
+ "Afficher/masquer les options pour annuler le chargement/l'enregistrement d'une sauvegarde instantanée."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_ADD_TO_FAVORITES,
- "Afficher 'Ajouter aux favoris'"
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_ADD_TO_FAVORITES,
+ "Afficher 'Ajouter aux favoris'"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_ADD_TO_FAVORITES,
- "Afficher/masquer l'option 'Ajouter aux favoris'."
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_ADD_TO_FAVORITES,
+ "Afficher/masquer l'option 'Ajouter aux favoris'."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_START_RECORDING,
- "Afficher 'Lancer l'enregistrement'"
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_START_RECORDING,
+ "Afficher 'Lancer l'enregistrement'"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_START_RECORDING,
- "Afficher/masquer l'option 'Lancer l'enregistrement'."
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_START_RECORDING,
+ "Afficher/masquer l'option 'Lancer l'enregistrement'."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_START_STREAMING,
- "Afficher 'Lancer le streaming'"
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_START_STREAMING,
+ "Afficher 'Lancer le streaming'"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_START_STREAMING,
- "Afficher/masquer l'option 'Lancer le streaming'."
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_START_STREAMING,
+ "Afficher/masquer l'option 'Lancer le streaming'."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_RESET_CORE_ASSOCIATION,
- "Afficher 'Réinitialiser l'association au cœur'"
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_SET_CORE_ASSOCIATION,
+ "Show Set Core Association"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_RESET_CORE_ASSOCIATION,
- "Afficher/masquer l'option 'Réinitialiser l'association au cœur'."
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_SET_CORE_ASSOCIATION,
+ "Show/hide the 'Set Core Association' option."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_OPTIONS,
- "Afficher 'Options'"
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_RESET_CORE_ASSOCIATION,
+ "Afficher 'Réinitialiser l'association au cœur'"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_OPTIONS,
- "Afficher/masquer l'option 'Options'."
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_RESET_CORE_ASSOCIATION,
+ "Afficher/masquer l'option 'Réinitialiser l'association au cœur'."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_CONTROLS,
- "Afficher 'Contrôles'"
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_OPTIONS,
+ "Afficher 'Options'"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_CONTROLS,
- "Afficher/masquer l'option 'Contrôles'."
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_OPTIONS,
+ "Afficher/masquer l'option 'Options'."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_CHEATS,
- "Afficher 'Cheats'"
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_CONTROLS,
+ "Afficher 'Contrôles'"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_CHEATS,
- "Afficher/masquer l'option 'Cheats'."
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_CONTROLS,
+ "Afficher/masquer l'option 'Contrôles'."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_SHADERS,
- "Afficher 'Shaders'"
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_CHEATS,
+ "Afficher 'Cheats'"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_SHADERS,
- "Afficher/masquer l'option 'Shaders'."
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_CHEATS,
+ "Afficher/masquer l'option 'Cheats'."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_SAVE_CORE_OVERRIDES,
- "Afficher la sauvegarde du remplacement de configuration pour le cœur"
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_SHADERS,
+ "Afficher 'Shaders'"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_SAVE_CORE_OVERRIDES,
- "Afficher/masquer l'option 'Sauvegarder le remplacement de configuration pour le cœur'."
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_SHADERS,
+ "Afficher/masquer l'option 'Shaders'."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_SAVE_GAME_OVERRIDES,
- "Afficher la sauvegarde du remplacement de configuration pour le jeu"
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_SAVE_CORE_OVERRIDES,
+ "Afficher la sauvegarde du remplacement de configuration pour le cœur"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_SAVE_GAME_OVERRIDES,
- "Afficher/masquer l'option 'Sauvegarder le remplacement de configuration pour le jeu'."
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_SAVE_CORE_OVERRIDES,
+ "Afficher/masquer l'option 'Sauvegarder le remplacement de configuration pour le cœur'."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_INFORMATION,
- "Afficher 'Informations'"
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_SAVE_GAME_OVERRIDES,
+ "Afficher la sauvegarde du remplacement de configuration pour le jeu"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
- "Afficher/masquer l'option 'Informations'."
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_SAVE_GAME_OVERRIDES,
+ "Afficher/masquer l'option 'Sauvegarder le remplacement de configuration pour le jeu'."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_ENABLE,
- "Arrière-plan des notifications"
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_INFORMATION,
+ "Afficher 'Informations'"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_RED,
- "Valeur de rouge (Arrière-plan des notifications)"
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION,
+ "Afficher/masquer l'option 'Informations'."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_GREEN,
- "Valeur de vert (Arrière-plan des notifications)"
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_DOWNLOAD_THUMBNAILS,
+ "Show Download Thumbnails"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_BLUE,
- "Valeur de bleu (Arrière-plan des notifications)"
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_DOWNLOAD_THUMBNAILS,
+ "Show/hide the 'Download Thumbnails' option."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_OPACITY,
- "Opacité (Arrière-plan des notifications) "
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_ENABLE,
+ "Arrière-plan des notifications"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_DISABLE_KIOSK_MODE,
- "Désactiver le mode kiosque"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_RED,
+ "Valeur de rouge (Arrière-plan des notifications)"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_DISABLE_KIOSK_MODE,
- "Désactive le mode kiosque. Un redémarrage est requis pour que la modification prenne effet."
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_GREEN,
+ "Valeur de vert (Arrière-plan des notifications)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_ENABLE_KIOSK_MODE,
- "Mode kiosque"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_BLUE,
+ "Valeur de bleu (Arrière-plan des notifications)"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_ENABLE_KIOSK_MODE,
- "Protège la configuration en masquant tous les réglages liés à la configuration."
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_OPACITY,
+ "Opacité (Arrière-plan des notifications) "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_KIOSK_MODE_PASSWORD,
- "Définir le mot de passe pour désactiver le mode kiosque"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_DISABLE_KIOSK_MODE,
+ "Désactiver le mode kiosque"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_KIOSK_MODE_PASSWORD,
- "La saisie d'un mot de passe lors de l'activation du mode kiosque permet de le désactiver ultérieurement à partir du menu, en allant dans le menu principal, en sélectionnant 'Désactiver le mode kiosque' et en entrant le mot de passe."
- )
+ MENU_ENUM_SUBLABEL_MENU_DISABLE_KIOSK_MODE,
+ "Désactive le mode kiosque. Un redémarrage est requis pour que la modification prenne effet."
+ )
MSG_HASH(
- MSG_INPUT_KIOSK_MODE_PASSWORD,
- "Entrer le mot de passe"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_ENABLE_KIOSK_MODE,
+ "Mode kiosque"
+ )
MSG_HASH(
- MSG_INPUT_KIOSK_MODE_PASSWORD_OK,
- "Mot de passe correct."
- )
+ MENU_ENUM_SUBLABEL_MENU_ENABLE_KIOSK_MODE,
+ "Protège la configuration en masquant tous les réglages liés à la configuration."
+ )
MSG_HASH(
- MSG_INPUT_KIOSK_MODE_PASSWORD_NOK,
- "Mot de passe incorrect."
- )
+ MENU_ENUM_LABEL_VALUE_MENU_KIOSK_MODE_PASSWORD,
+ "Définir le mot de passe pour désactiver le mode kiosque"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_COLOR_RED,
- "Valeur de rouge (Notifications)"
- )
+ MENU_ENUM_SUBLABEL_MENU_KIOSK_MODE_PASSWORD,
+ "La saisie d'un mot de passe lors de l'activation du mode kiosque permet de le désactiver ultérieurement à partir du menu, en allant dans le menu principal, en sélectionnant 'Désactiver le mode kiosque' et en entrant le mot de passe."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_COLOR_GREEN,
- "Valeur de vert (Notifications)"
- )
+ MSG_INPUT_KIOSK_MODE_PASSWORD,
+ "Entrer le mot de passe"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_COLOR_BLUE,
- "Valeur de bleu (Notifications)"
- )
+ MSG_INPUT_KIOSK_MODE_PASSWORD_OK,
+ "Mot de passe correct."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_FRAMECOUNT_SHOW,
- "Afficher le compteur d'images"
- )
+ MSG_INPUT_KIOSK_MODE_PASSWORD_NOK,
+ "Mot de passe incorrect."
+ )
MSG_HASH(
- MSG_CONFIG_OVERRIDE_LOADED,
- "Remplacement de configuration chargé."
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_COLOR_RED,
+ "Valeur de rouge (Notifications)"
+ )
MSG_HASH(
- MSG_GAME_REMAP_FILE_LOADED,
- "Fichier de remappage pour le jeu chargé."
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_COLOR_GREEN,
+ "Valeur de vert (Notifications)"
+ )
MSG_HASH(
- MSG_CORE_REMAP_FILE_LOADED,
- "Fichier de remappage pour le cœur chargé."
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_COLOR_BLUE,
+ "Valeur de bleu (Notifications)"
+ )
MSG_HASH(
- MSG_RUNAHEAD_CORE_DOES_NOT_SUPPORT_SAVESTATES,
- "L'éxécution en avance a été désactivée car ce cœur ne prend pas en charge les sauvegardes instantanées."
- )
+ MENU_ENUM_LABEL_VALUE_FRAMECOUNT_SHOW,
+ "Afficher le compteur d'images"
+ )
MSG_HASH(
- MSG_RUNAHEAD_FAILED_TO_SAVE_STATE,
- "Échec de la sauvegarde de l'état. L'éxécution en avance a été désactivée."
- )
+ MSG_CONFIG_OVERRIDE_LOADED,
+ "Remplacement de configuration chargé."
+ )
MSG_HASH(
- MSG_RUNAHEAD_FAILED_TO_LOAD_STATE,
- "Échec du chargement de l'état. L'éxécution en avance a été désactivée."
- )
+ MSG_GAME_REMAP_FILE_LOADED,
+ "Fichier de remappage pour le jeu chargé."
+ )
MSG_HASH(
- MSG_RUNAHEAD_FAILED_TO_CREATE_SECONDARY_INSTANCE,
- "Impossible de créer une deuxième instance. L'éxécution en avance utilisera désormais une seule instance."
- )
+ MSG_CORE_REMAP_FILE_LOADED,
+ "Fichier de remappage pour le cœur chargé."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUTOMATICALLY_ADD_CONTENT_TO_PLAYLIST,
- "Ajouter automatiquement aux listes de lecture"
- )
+ MSG_RUNAHEAD_CORE_DOES_NOT_SUPPORT_SAVESTATES,
+ "L'éxécution en avance a été désactivée car ce cœur ne prend pas en charge les sauvegardes instantanées."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_AUTOMATICALLY_ADD_CONTENT_TO_PLAYLIST,
- "Analyse automatiquement le contenu chargé avec le scanner des listes de lecture."
- )
+ MSG_RUNAHEAD_FAILED_TO_SAVE_STATE,
+ "Échec de la sauvegarde de l'état. L'éxécution en avance a été désactivée."
+ )
MSG_HASH(
- MSG_SCANNING_OF_FILE_FINISHED,
- "Analyse du fichier terminée"
- )
+ MSG_RUNAHEAD_FAILED_TO_LOAD_STATE,
+ "Échec du chargement de l'état. L'éxécution en avance a été désactivée."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_OPACITY,
- "Opacité de la fenêtre"
- )
+ MSG_RUNAHEAD_FAILED_TO_CREATE_SECONDARY_INSTANCE,
+ "Impossible de créer une deuxième instance. L'éxécution en avance utilisera désormais une seule instance."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_RESAMPLER_QUALITY,
- "Qualité du rééchantillonnage "
- )
+ MENU_ENUM_LABEL_VALUE_AUTOMATICALLY_ADD_CONTENT_TO_PLAYLIST,
+ "Ajouter automatiquement aux listes de lecture"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_RESAMPLER_QUALITY,
- "Réduire cette valeur pour favoriser les performances/réduire la latence plutôt que la qualité audio, l'augmenter permet d'obtenir une meilleure qualité audio aux dépens de la performance/d'une latence inférieure."
- )
+ MENU_ENUM_SUBLABEL_AUTOMATICALLY_ADD_CONTENT_TO_PLAYLIST,
+ "Analyse automatiquement le contenu chargé avec le scanner des listes de lecture."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SHADER_WATCH_FOR_CHANGES,
- "Verifier les changements dans les fichiers de shaders"
- )
+ MSG_SCANNING_OF_FILE_FINISHED,
+ "Analyse du fichier terminée"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SHADER_WATCH_FOR_CHANGES,
- "Appliquer automatiquement les modifications apportées aux fichiers de shader sur le disque."
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_OPACITY,
+ "Opacité de la fenêtre"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SHOW_DECORATIONS,
- "Afficher les décorations de fenêtre"
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_RESAMPLER_QUALITY,
+ "Qualité du rééchantillonnage "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_STATISTICS_SHOW,
- "Afficher les statistiques"
- )
+ MENU_ENUM_SUBLABEL_AUDIO_RESAMPLER_QUALITY,
+ "Réduire cette valeur pour favoriser les performances/réduire la latence plutôt que la qualité audio, l'augmenter permet d'obtenir une meilleure qualité audio aux dépens de la performance/d'une latence inférieure."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_STATISTICS_SHOW,
- "Affiche des statistiques techniques à l'écran."
- )
+ MENU_ENUM_LABEL_VALUE_SHADER_WATCH_FOR_CHANGES,
+ "Verifier les changements dans les fichiers de shaders"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_RGUI_BORDER_FILLER_ENABLE,
- "Remplissage de la bordure"
- )
+ MENU_ENUM_SUBLABEL_SHADER_WATCH_FOR_CHANGES,
+ "Appliquer automatiquement les modifications apportées aux fichiers de shader sur le disque."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_RGUI_BORDER_FILLER_ENABLE,
- "Affiche la bordure du menu."
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SHOW_DECORATIONS,
+ "Afficher les décorations de fenêtre"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_RGUI_BORDER_FILLER_THICKNESS_ENABLE,
- "Épaisseur du remplissage de la bordure"
- )
+ MENU_ENUM_LABEL_VALUE_STATISTICS_SHOW,
+ "Afficher les statistiques"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_RGUI_BORDER_FILLER_THICKNESS_ENABLE,
- "Augmenter la taille du motif de damier de la bordure du menu."
- )
+ MENU_ENUM_SUBLABEL_STATISTICS_SHOW,
+ "Affiche des statistiques techniques à l'écran."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_RGUI_BACKGROUND_FILLER_THICKNESS_ENABLE,
- "Épaisseur du remplissage de l'arrière-plan"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_RGUI_BORDER_FILLER_ENABLE,
+ "Remplissage de la bordure"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_RGUI_BACKGROUND_FILLER_THICKNESS_ENABLE,
- "Augmente la taille du motif de damier en arrière-plan du menu."
- )
+ MENU_ENUM_SUBLABEL_MENU_RGUI_BORDER_FILLER_ENABLE,
+ "Affiche la bordure du menu."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_RGUI_ASPECT_RATIO_LOCK,
- "Verrouiller le rapport d'aspect du menu"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_RGUI_BORDER_FILLER_THICKNESS_ENABLE,
+ "Épaisseur du remplissage de la bordure"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_RGUI_ASPECT_RATIO_LOCK,
- "S'assure que le menu est toujours affiché avec le bon rapport d'aspect. Si cette option est désactivée, le menu rapide sera étiré pour correspondre au contenu actuellement chargé."
- )
+ MENU_ENUM_SUBLABEL_MENU_RGUI_BORDER_FILLER_THICKNESS_ENABLE,
+ "Augmenter la taille du motif de damier de la bordure du menu."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_RGUI_INTERNAL_UPSCALE_LEVEL,
- "Upscaling interne"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_RGUI_BACKGROUND_FILLER_THICKNESS_ENABLE,
+ "Épaisseur du remplissage de l'arrière-plan"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_RGUI_INTERNAL_UPSCALE_LEVEL,
- "Upscale l'interface du menu avant de l'afficher à l'écran. Lors de l'utilisation du 'Filtre linéaire dans le menu', cette option supprime les artéfacts de mise à l'échelle (pixels irréguliers) tout en conservant une image nette. A un impact significatif sur les performances qui augmente avec le niveau d'upscaling."
- )
+ MENU_ENUM_SUBLABEL_MENU_RGUI_BACKGROUND_FILLER_THICKNESS_ENABLE,
+ "Augmente la taille du motif de damier en arrière-plan du menu."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_RGUI_ASPECT_RATIO,
- "Rapport d'aspect du menu"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_RGUI_ASPECT_RATIO_LOCK,
+ "Verrouiller le rapport d'aspect du menu"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_RGUI_ASPECT_RATIO,
- "Sélectionner le rapport d'aspect du menu. Les rapports d'écran large augmentent la résolution horizontale de l'interface de menu. (Peut nécessiter un redémarrage si 'Verrouiller le rapport d'aspect du menu' est désactivé)"
- )
+ MENU_ENUM_SUBLABEL_MENU_RGUI_ASPECT_RATIO_LOCK,
+ "S'assure que le menu est toujours affiché avec le bon rapport d'aspect. Si cette option est désactivée, le menu rapide sera étiré pour correspondre au contenu actuellement chargé."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_RGUI_FULL_WIDTH_LAYOUT,
- "Utiliser la mise en page en pleine largeur"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_RGUI_INTERNAL_UPSCALE_LEVEL,
+ "Upscaling interne"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_RGUI_FULL_WIDTH_LAYOUT,
- "Redimensionner et positionner les entrées du menu pour utiliser au mieux l'espace disponible à l'écran. Désactiver cette option pour utiliser une disposition classique à deux colonnes de largeur fixe."
- )
+ MENU_ENUM_SUBLABEL_MENU_RGUI_INTERNAL_UPSCALE_LEVEL,
+ "Upscale l'interface du menu avant de l'afficher à l'écran. Lors de l'utilisation du 'Filtre linéaire dans le menu', cette option supprime les artéfacts de mise à l'échelle (pixels irréguliers) tout en conservant une image nette. A un impact significatif sur les performances qui augmente avec le niveau d'upscaling."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_RGUI_SHADOWS,
- "Effet d'ombres"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_RGUI_ASPECT_RATIO,
+ "Rapport d'aspect du menu"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_RGUI_SHADOWS,
- "Activer les ombres portées pour le texte du menu, les bordures et les miniatures. A un impact modeste sur les performances."
- )
+ MENU_ENUM_SUBLABEL_MENU_RGUI_ASPECT_RATIO,
+ "Sélectionner le rapport d'aspect du menu. Les rapports d'écran large augmentent la résolution horizontale de l'interface de menu. (Peut nécessiter un redémarrage si 'Verrouiller le rapport d'aspect du menu' est désactivé)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_RGUI_PARTICLE_EFFECT,
- "Animation de l'arrière-plan"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_RGUI_FULL_WIDTH_LAYOUT,
+ "Utiliser la mise en page en pleine largeur"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_RGUI_PARTICLE_EFFECT,
- "Activer l'effet d'animation de particules en arrière-plan. A un impact significatif sur les performances."
- )
+ MENU_ENUM_SUBLABEL_MENU_RGUI_FULL_WIDTH_LAYOUT,
+ "Redimensionner et positionner les entrées du menu pour utiliser au mieux l'espace disponible à l'écran. Désactiver cette option pour utiliser une disposition classique à deux colonnes de largeur fixe."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_NONE,
- "Désactivée"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_RGUI_SHADOWS,
+ "Effet d'ombres"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_SNOW,
- "Neige (Légère)"
- )
+ MENU_ENUM_SUBLABEL_MENU_RGUI_SHADOWS,
+ "Activer les ombres portées pour le texte du menu, les bordures et les miniatures. A un impact modeste sur les performances."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_SNOW_ALT,
- "Neige (Intense)"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_RGUI_PARTICLE_EFFECT,
+ "Animation de l'arrière-plan"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_RAIN,
- "Pluie"
- )
+ MENU_ENUM_SUBLABEL_MENU_RGUI_PARTICLE_EFFECT,
+ "Activer l'effet d'animation de particules en arrière-plan. A un impact significatif sur les performances."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_VORTEX,
- "Vortex"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_NONE,
+ "Désactivée"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_STARFIELD,
- "Ciel étoilé"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_SNOW,
+ "Neige (Légère)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_RGUI_EXTENDED_ASCII,
- "Prise en charge de l'ASCII étendu"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_SNOW_ALT,
+ "Neige (Intense)"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_RGUI_EXTENDED_ASCII,
- "Activer l'affichage des caractères ASCII non standard. Requis pour la compatibilité avec certaines langues occidentales non anglaises. A un impact modéré sur les performances."
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_RAIN,
+ "Pluie"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION,
- "Pour les écrans à tube cathodique (CRT) uniquement. Tente d'utiliser la résolution exacte du cœur/du jeu et sa fréquence de rafraîchissement."
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_VORTEX,
+ "Vortex"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION,
- "Résolution adaptée aux écrans CRT"
- )
+ MENU_ENUM_LABEL_VALUE_RGUI_PARTICLE_EFFECT_STARFIELD,
+ "Ciel étoilé"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_SUPER,
- "Basculer entre les super résolutions natives et ultra-larges (UltraWide)."
- )
+ MENU_ENUM_LABEL_VALUE_MENU_RGUI_PARTICLE_EFFECT_SPEED,
+ "Vitesse de l'animation en arrière-plan"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER,
- "Super résolution CRT"
- )
+ MENU_ENUM_SUBLABEL_MENU_RGUI_PARTICLE_EFFECT_SPEED,
+ "Adjust speed of background particle animation effects."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_REWIND,
- "Afficher les réglages de rembobinage"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_RGUI_EXTENDED_ASCII,
+ "Prise en charge de l'ASCII étendu"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CONTENT_SHOW_REWIND,
- "Afficher/masquer les options de rembobinage."
- )
+ MENU_ENUM_SUBLABEL_MENU_RGUI_EXTENDED_ASCII,
+ "Activer l'affichage des caractères ASCII non standard. Requis pour la compatibilité avec certaines langues occidentales non anglaises. A un impact modéré sur les performances."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CONTENT_SHOW_LATENCY,
- "Afficher/masquer les options de latence."
- )
+ MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION,
+ "Pour les écrans à tube cathodique (CRT) uniquement. Tente d'utiliser la résolution exacte du cœur/du jeu et sa fréquence de rafraîchissement."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_LATENCY,
- "Afficher les réglages de latence"
- )
+ MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION,
+ "Résolution adaptée aux écrans CRT"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CONTENT_SHOW_OVERLAYS,
- "Afficher/masquer les options de surimpression."
- )
+ MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_SUPER,
+ "Basculer entre les super résolutions natives et ultra-larges (UltraWide)."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_OVERLAYS,
- "Afficher les réglages de surimpression"
- )
+ MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER,
+ "Super résolution CRT"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE_MENU,
- "Mixeur"
- )
+ MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_REWIND,
+ "Afficher les réglages de rembobinage"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU,
- "Lire des flux audio simultanés même dans le menu."
- )
+ MENU_ENUM_SUBLABEL_CONTENT_SHOW_REWIND,
+ "Afficher/masquer les options de rembobinage."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AUDIO_MIXER_SETTINGS,
- "Réglages du mixeur"
- )
+ MENU_ENUM_SUBLABEL_CONTENT_SHOW_LATENCY,
+ "Afficher/masquer les options de latence."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_AUDIO_MIXER_SETTINGS,
- "Afficher et/ou modifier les réglages du mixeur audio."
- )
+ MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_LATENCY,
+ "Afficher les réglages de latence"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_INFO,
- "Informations"
- )
+ MENU_ENUM_SUBLABEL_CONTENT_SHOW_OVERLAYS,
+ "Afficher/masquer les options de surimpression."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_FILE,
- "&Fichier"
- )
+ MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_OVERLAYS,
+ "Afficher les réglages de surimpression"
+ )
+#ifdef HAVE_VIDEO_LAYOUT
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_VIDEO_LAYOUT,
+ "Afficher les réglages de disposition d'affichage"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CONTENT_SHOW_VIDEO_LAYOUT,
+ "Afficher/masquer les options de disposition d'affichage."
+ )
+#endif
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_FILE_LOAD_CORE,
- "&Charger un cœur..."
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE_MENU,
+ "Mixeur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_FILE_UNLOAD_CORE,
- "&Décharger le cœur"
- )
+ MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU,
+ "Lire des flux audio simultanés même dans le menu."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_FILE_EXIT,
- "&Quitter"
- )
+ MENU_ENUM_LABEL_VALUE_AUDIO_MIXER_SETTINGS,
+ "Réglages du mixeur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_EDIT,
- "&Édition"
- )
+ MENU_ENUM_SUBLABEL_AUDIO_MIXER_SETTINGS,
+ "Afficher et/ou modifier les réglages du mixeur audio."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_EDIT_SEARCH,
- "&Rechercher"
- )
+ MENU_ENUM_LABEL_VALUE_QT_INFO,
+ "Informations"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW,
- "&Présentation"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_FILE,
+ "&Fichier"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_CLOSED_DOCKS,
- "Panneaux fermés"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_FILE_LOAD_CORE,
+ "&Charger un cœur..."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_SHADER_PARAMS,
- "Paramètres de shaders"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_FILE_UNLOAD_CORE,
+ "&Décharger le cœur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS,
- "&Réglages..."
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_FILE_EXIT,
+ "&Quitter"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_SAVE_DOCK_POSITIONS,
- "Restaurer la position des panneaux :"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_EDIT,
+ "&Édition"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_SAVE_GEOMETRY,
- "Restaurer la taille de la fenêtre :"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_EDIT_SEARCH,
+ "&Rechercher"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_SAVE_LAST_TAB,
- "Rouvrir le dernier onglet du navigateur :"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW,
+ "&Présentation"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_THEME,
- "Thème :"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_CLOSED_DOCKS,
+ "Panneaux fermés"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_THEME_SYSTEM_DEFAULT,
- ""
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_SHADER_PARAMS,
+ "Paramètres de shaders"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_THEME_DARK,
- "Sombre"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS,
+ "&Réglages..."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_THEME_CUSTOM,
- "Personnalisé..."
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_SAVE_DOCK_POSITIONS,
+ "Restaurer la position des panneaux :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_TITLE,
- "Réglages"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_SAVE_GEOMETRY,
+ "Restaurer la taille de la fenêtre :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_TOOLS,
- "&Outils"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_SAVE_LAST_TAB,
+ "Rouvrir le dernier onglet du navigateur :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_HELP,
- "&Aide"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_THEME,
+ "Thème :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_HELP_ABOUT,
- "À propos de RetroArch"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_THEME_SYSTEM_DEFAULT,
+ ""
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_HELP_DOCUMENTATION,
- "Documentation"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_THEME_DARK,
+ "Sombre"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_LOAD_CUSTOM_CORE,
- "Charger un cœur personnalisé..."
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_THEME_CUSTOM,
+ "Personnalisé..."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_LOAD_CORE,
- "Charger un cœur"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_TITLE,
+ "Réglages"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_LOADING_CORE,
- "Chargement du cœur..."
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_TOOLS,
+ "&Outils"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_NAME,
- "Nom"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_HELP,
+ "&Aide"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_CORE_VERSION,
- "Version"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_HELP_ABOUT,
+ "À propos de RetroArch"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_TAB_PLAYLISTS,
- "Listes de lecture"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_HELP_DOCUMENTATION,
+ "Documentation"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_TAB_FILE_BROWSER,
- "Navigateur de fichiers"
- )
+ MENU_ENUM_LABEL_VALUE_QT_LOAD_CUSTOM_CORE,
+ "Charger un cœur personnalisé..."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_TAB_FILE_BROWSER_TOP,
- "Haut"
- )
+ MENU_ENUM_LABEL_VALUE_QT_LOAD_CORE,
+ "Charger un cœur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_TAB_FILE_BROWSER_UP,
- "Niveau supérieur"
- )
+ MENU_ENUM_LABEL_VALUE_QT_LOADING_CORE,
+ "Chargement du cœur..."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_DOCK_CONTENT_BROWSER,
- "Navigateur de contenu"
- )
+ MENU_ENUM_LABEL_VALUE_QT_NAME,
+ "Nom"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_BOXART,
- "Jaquette"
- )
+ MENU_ENUM_LABEL_VALUE_QT_CORE_VERSION,
+ "Version"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_SCREENSHOT,
- "Capture d'écran"
- )
+ MENU_ENUM_LABEL_VALUE_QT_TAB_PLAYLISTS,
+ "Listes de lecture"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_TITLE_SCREEN,
- "Écran titre"
- )
+ MENU_ENUM_LABEL_VALUE_QT_TAB_FILE_BROWSER,
+ "Navigateur de fichiers"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_ALL_PLAYLISTS,
- "Toutes les listes de lecture"
- )
+ MENU_ENUM_LABEL_VALUE_QT_TAB_FILE_BROWSER_TOP,
+ "Haut"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_CORE,
- "Cœurs"
- )
+ MENU_ENUM_LABEL_VALUE_QT_TAB_FILE_BROWSER_UP,
+ "Niveau supérieur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_CORE_INFO,
- "Informations du cœur"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_DOCK_CONTENT_BROWSER,
+ "Navigateur de contenu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_CORE_SELECTION_ASK,
- ""
- )
+ MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_BOXART,
+ "Jaquette"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_INFORMATION,
- "Informations"
- )
+ MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_SCREENSHOT,
+ "Capture d'écran"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_WARNING,
- "Attention"
- )
+ MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_TITLE_SCREEN,
+ "Écran titre"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_ERROR,
- "Erreur"
- )
+ MENU_ENUM_LABEL_VALUE_QT_ALL_PLAYLISTS,
+ "Toutes les listes de lecture"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_NETWORK_ERROR,
- "Erreur réseau"
- )
+ MENU_ENUM_LABEL_VALUE_QT_CORE,
+ "Cœurs"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_RESTART_TO_TAKE_EFFECT,
- "Veuillez redémarrer le programme pour que les modifications prennent effet."
- )
+ MENU_ENUM_LABEL_VALUE_QT_CORE_INFO,
+ "Informations du cœur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_LOG,
- "Journal"
- )
+ MENU_ENUM_LABEL_VALUE_QT_CORE_SELECTION_ASK,
+ ""
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_ITEMS_COUNT,
- "%1 éléments"
- )
+ MENU_ENUM_LABEL_VALUE_QT_INFORMATION,
+ "Informations"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_DROP_IMAGE_HERE,
- "Déposer une image ici"
- )
+ MENU_ENUM_LABEL_VALUE_QT_WARNING,
+ "Attention"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_QT_ERROR,
+ "Erreur"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_QT_NETWORK_ERROR,
+ "Erreur réseau"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_QT_RESTART_TO_TAKE_EFFECT,
+ "Veuillez redémarrer le programme pour que les modifications prennent effet."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_QT_LOG,
+ "Journal"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_QT_ITEMS_COUNT,
+ "%1 éléments"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_QT_DROP_IMAGE_HERE,
+ "Déposer une image ici"
+ )
#ifdef HAVE_QT
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_SCAN_FINISHED,
- "Scan terminé.
\n"
- "Pour que le contenu soit correctement analysé, vous devez :\n"
- "- avoir un cœur compatible déjà téléchargé
\n"
- "- avoir les \"Fichiers d'information de cœurs\" à jour via la mise à jour en ligne
\n"
- "- avoir les \"Bases de données\" à jour via la mise à jour en ligne
\n"
- "- redémarrer RetroArch si l'une des opérations ci-dessus vient d'être effectuée
\n"
- "Enfin, le contenu doit correspondre aux bases de données existantes ici. Si cela ne fonctionne toujours pas, veuillez envisager de soumettre un rapport d'erreur."
- )
+ MENU_ENUM_LABEL_VALUE_QT_SCAN_FINISHED,
+ "Scan terminé.
\n"
+ "Pour que le contenu soit correctement analysé, vous devez :\n"
+ "- avoir un cœur compatible déjà téléchargé
\n"
+ "- avoir les \"Fichiers d'information de cœurs\" à jour via la mise à jour en ligne
\n"
+ "- avoir les \"Bases de données\" à jour via la mise à jour en ligne
\n"
+ "- redémarrer RetroArch si l'une des opérations ci-dessus vient d'être effectuée
\n"
+ "Enfin, le contenu doit correspondre aux bases de données existantes ici. Si cela ne fonctionne toujours pas, veuillez envisager de soumettre un rapport d'erreur."
+ )
#endif
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SHOW_WIMP,
- "Afficher l'interface de bureau"
- )
+ MENU_ENUM_LABEL_VALUE_SHOW_WIMP,
+ "Afficher l'interface de bureau"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_SHOW_WIMP,
- "Ouvre l'interface de bureau si cette dernière est fermée."
- )
+ MENU_ENUM_SUBLABEL_SHOW_WIMP,
+ "Ouvre l'interface de bureau si cette dernière est fermée."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_DONT_SHOW_AGAIN,
- "Ne plus afficher"
- )
+ MENU_ENUM_LABEL_VALUE_QT_DONT_SHOW_AGAIN,
+ "Ne plus afficher"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_STOP,
- "Arrêter"
- )
+ MENU_ENUM_LABEL_VALUE_QT_STOP,
+ "Arrêter"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_ASSOCIATE_CORE,
- "Associer le cœur"
- )
+ MENU_ENUM_LABEL_VALUE_QT_ASSOCIATE_CORE,
+ "Associer le cœur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_HIDDEN_PLAYLISTS,
- "Listes de lecture masquées"
- )
+ MENU_ENUM_LABEL_VALUE_QT_HIDDEN_PLAYLISTS,
+ "Listes de lecture masquées"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_HIDE,
- "Masquer"
- )
+ MENU_ENUM_LABEL_VALUE_QT_HIDE,
+ "Masquer"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_HIGHLIGHT_COLOR,
- "Couleur de surbrillance :"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_HIGHLIGHT_COLOR,
+ "Couleur de surbrillance :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_CHOOSE,
- "&Choisir..."
- )
+ MENU_ENUM_LABEL_VALUE_QT_CHOOSE,
+ "&Choisir..."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_SELECT_COLOR,
- "Sélectionner une couleur"
- )
+ MENU_ENUM_LABEL_VALUE_QT_SELECT_COLOR,
+ "Sélectionner une couleur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_SELECT_THEME,
- "Sélectionner un thème"
- )
+ MENU_ENUM_LABEL_VALUE_QT_SELECT_THEME,
+ "Sélectionner un thème"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_CUSTOM_THEME,
- "Thème personnalisé"
- )
+ MENU_ENUM_LABEL_VALUE_QT_CUSTOM_THEME,
+ "Thème personnalisé"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_FILE_PATH_IS_BLANK,
- "L'emplacement du fichier est vide."
- )
+ MENU_ENUM_LABEL_VALUE_QT_FILE_PATH_IS_BLANK,
+ "L'emplacement du fichier est vide."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_FILE_IS_EMPTY,
- "Le fichier est vide."
- )
+ MENU_ENUM_LABEL_VALUE_QT_FILE_IS_EMPTY,
+ "Le fichier est vide."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_FILE_READ_OPEN_FAILED,
- "Impossible d'ouvrir le fichier en lecture."
- )
+ MENU_ENUM_LABEL_VALUE_QT_FILE_READ_OPEN_FAILED,
+ "Impossible d'ouvrir le fichier en lecture."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_FILE_WRITE_OPEN_FAILED,
- "Impossible d'ouvrir le fichier en écriture."
- )
+ MENU_ENUM_LABEL_VALUE_QT_FILE_WRITE_OPEN_FAILED,
+ "Impossible d'ouvrir le fichier en écriture."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_FILE_DOES_NOT_EXIST,
- "Le fichier n'existe pas."
- )
+ MENU_ENUM_LABEL_VALUE_QT_FILE_DOES_NOT_EXIST,
+ "Le fichier n'existe pas."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_SUGGEST_LOADED_CORE_FIRST,
- "Suggérer le cœur chargé en premier :"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_SUGGEST_LOADED_CORE_FIRST,
+ "Suggérer le cœur chargé en premier :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_ZOOM,
- "Échelle"
- )
+ MENU_ENUM_LABEL_VALUE_QT_ZOOM,
+ "Échelle"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_VIEW,
- "Présentation"
- )
+ MENU_ENUM_LABEL_VALUE_QT_VIEW,
+ "Présentation"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_VIEW_TYPE_ICONS,
- "Par icônes"
- )
+ MENU_ENUM_LABEL_VALUE_QT_VIEW_TYPE_ICONS,
+ "Par icônes"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_VIEW_TYPE_LIST,
- "Par liste"
- )
+ MENU_ENUM_LABEL_VALUE_QT_VIEW_TYPE_LIST,
+ "Par liste"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUICK_MENU_OVERRIDE_OPTIONS,
- "Remplacements de configuration"
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_OVERRIDE_OPTIONS,
+ "Remplacements de configuration"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUICK_MENU_OVERRIDE_OPTIONS,
- "Options pour remplacer la configuration globale."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_MIXER_ACTION_PLAY,
- "Cela lancera la lecture du flux audio. Une fois terminée, le flux audio actuel sera supprimé de la mémoire."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_MIXER_ACTION_PLAY_LOOPED,
- "Cela lancera la lecture du flux audio. Une fois terminée, la lecture se relancera depuis le début."
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_OVERRIDE_OPTIONS,
+ "Options pour remplacer la configuration globale."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_MIXER_ACTION_PLAY,
+ "Cela lancera la lecture du flux audio. Une fois terminée, le flux audio actuel sera supprimé de la mémoire."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_MIXER_ACTION_PLAY_LOOPED,
+ "Cela lancera la lecture du flux audio. Une fois terminée, la lecture se relancera depuis le début."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MIXER_ACTION_PLAY_SEQUENTIAL,
- "Cela lancera la lecture du flux audio. Une fois terminée, la lecture passera au prochain flux audio dans un ordre séquentiel et répétera ce comportement. Utile pour la lecture d'albums."
- )
+ MENU_ENUM_SUBLABEL_MIXER_ACTION_PLAY_SEQUENTIAL,
+ "Cela lancera la lecture du flux audio. Une fois terminée, la lecture passera au prochain flux audio dans un ordre séquentiel et répétera ce comportement. Utile pour la lecture d'albums."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MIXER_ACTION_STOP,
- "Cela arrêtera la lecture du flux audio, mais ne le supprimera pas de la mémoire. Vous pouvez recommencer à le jouer en sélectionnant 'Lecture'."
- )
+ MENU_ENUM_SUBLABEL_MIXER_ACTION_STOP,
+ "Cela arrêtera la lecture du flux audio, mais ne le supprimera pas de la mémoire. Vous pouvez recommencer à le jouer en sélectionnant 'Lecture'."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MIXER_ACTION_REMOVE,
- "Cela arrêtera la lecture du flux audio et le supprimera entièrement de la mémoire."
- )
+ MENU_ENUM_SUBLABEL_MIXER_ACTION_REMOVE,
+ "Cela arrêtera la lecture du flux audio et le supprimera entièrement de la mémoire."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MIXER_ACTION_VOLUME,
- "Ajuster le volume de la diffusion audio."
- )
+ MENU_ENUM_SUBLABEL_MIXER_ACTION_VOLUME,
+ "Ajuster le volume de la diffusion audio."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_ADD_TO_MIXER,
- "Ajouter cette piste audio dans un emplacement de diffusion audio disponible. Si aucun emplacement n'est disponible, elle sera ignorée."
- )
+ MENU_ENUM_SUBLABEL_ADD_TO_MIXER,
+ "Ajouter cette piste audio dans un emplacement de diffusion audio disponible. Si aucun emplacement n'est disponible, elle sera ignorée."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_ADD_TO_MIXER_AND_PLAY,
- "Ajouter cette piste audio dans un emplacement de diffusion audio disponible et la lire. Si aucun emplacement n'est disponible, elle sera ignorée."
- )
+ MENU_ENUM_SUBLABEL_ADD_TO_MIXER_AND_PLAY,
+ "Ajouter cette piste audio dans un emplacement de diffusion audio disponible et la lire. Si aucun emplacement n'est disponible, elle sera ignorée."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MIXER_ACTION_PLAY,
- "Lecture"
- )
+ MENU_ENUM_LABEL_VALUE_MIXER_ACTION_PLAY,
+ "Lecture"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MIXER_ACTION_PLAY_LOOPED,
- "Lecture (En boucle)"
- )
+ MENU_ENUM_LABEL_VALUE_MIXER_ACTION_PLAY_LOOPED,
+ "Lecture (En boucle)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MIXER_ACTION_PLAY_SEQUENTIAL,
- "Lecture (Séquentielle)"
- )
+ MENU_ENUM_LABEL_VALUE_MIXER_ACTION_PLAY_SEQUENTIAL,
+ "Lecture (Séquentielle)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MIXER_ACTION_STOP,
- "Arrêter"
- )
+ MENU_ENUM_LABEL_VALUE_MIXER_ACTION_STOP,
+ "Arrêter"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MIXER_ACTION_REMOVE,
- "Supprimer"
- )
+ MENU_ENUM_LABEL_VALUE_MIXER_ACTION_REMOVE,
+ "Supprimer"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MIXER_ACTION_VOLUME,
- "Volume"
- )
+ MENU_ENUM_LABEL_VALUE_MIXER_ACTION_VOLUME,
+ "Volume"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST_OK_CURRENT_CORE,
- "Cœur actuel"
- )
+ MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST_OK_CURRENT_CORE,
+ "Cœur actuel"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_SEARCH_CLEAR,
- "Effacer"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_SEARCH_CLEAR,
+ "Effacer"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_ACHIEVEMENT_PAUSE,
- "Mettre les succès en pause pour la session en cours (cette action activera les sauvegardes instantanées, les cheats, le rembobinage, la mise en pause et le ralenti)."
- )
+ MENU_ENUM_SUBLABEL_ACHIEVEMENT_PAUSE,
+ "Mettre les succès en pause pour la session en cours (cette action activera les sauvegardes instantanées, les cheats, le rembobinage, la mise en pause et le ralenti)."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_ACHIEVEMENT_RESUME,
- "Réactiver les succès pour la session en cours (cette action désactivera les sauvegardes instantanées, les cheats, le rembobinage, la mise en pause, le ralenti et réinitialisera le jeu en cours)."
- )
+ MENU_ENUM_SUBLABEL_ACHIEVEMENT_RESUME,
+ "Réactiver les succès pour la session en cours (cette action désactivera les sauvegardes instantanées, les cheats, le rembobinage, la mise en pause, le ralenti et réinitialisera le jeu en cours)."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU,
- "Dans le menu"
- )
+ MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU,
+ "Dans le menu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME,
- "Dans le jeu"
- )
+ MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME,
+ "Dans le jeu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME_PAUSED,
- "Dans le jeu (En pause)"
- )
+ MENU_ENUM_LABEL_VALUE_DISCORD_IN_GAME_PAUSED,
+ "Dans le jeu (En pause)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PLAYING,
- "En jeu"
- )
+ MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PLAYING,
+ "En jeu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED,
- "En pause"
- )
+ MENU_ENUM_LABEL_VALUE_DISCORD_STATUS_PAUSED,
+ "En pause"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DISCORD_ALLOW,
- "Présence enrichie sur Discord"
- )
+ MENU_ENUM_LABEL_VALUE_DISCORD_ALLOW,
+ "Présence enrichie sur Discord"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_DISCORD_ALLOW,
- "Permet à l'application discord d'afficher plus de données sur le contenu joué.\n"
- "REMARQUE : Cela ne fonctionnera pas avec la version pour navigateur, mais uniquement avec l'application bureau native."
- )
+ MENU_ENUM_SUBLABEL_DISCORD_ALLOW,
+ "Permet à l'application discord d'afficher plus de données sur le contenu joué.\n"
+ "REMARQUE : Cela ne fonctionnera pas avec la version pour navigateur, mais uniquement avec l'application bureau native."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MIDI_INPUT,
- "Entrée"
- )
+ MENU_ENUM_LABEL_VALUE_MIDI_INPUT,
+ "Entrée"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MIDI_INPUT,
- "Sélectionner le périphérique d'entrée."
- )
+ MENU_ENUM_SUBLABEL_MIDI_INPUT,
+ "Sélectionner le périphérique d'entrée."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MIDI_OUTPUT,
- "Sortie"
- )
+ MENU_ENUM_LABEL_VALUE_MIDI_OUTPUT,
+ "Sortie"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MIDI_OUTPUT,
- "Sélectionner le périphérique de sortie."
- )
+ MENU_ENUM_SUBLABEL_MIDI_OUTPUT,
+ "Sélectionner le périphérique de sortie."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MIDI_VOLUME,
- "Volume"
- )
+ MENU_ENUM_LABEL_VALUE_MIDI_VOLUME,
+ "Volume"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MIDI_VOLUME,
- "Régler le volume de sortie (%)."
- )
+ MENU_ENUM_SUBLABEL_MIDI_VOLUME,
+ "Régler le volume de sortie (%)."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_POWER_MANAGEMENT_SETTINGS,
- "Gestion de l'alimentation"
- )
+ MENU_ENUM_LABEL_VALUE_POWER_MANAGEMENT_SETTINGS,
+ "Gestion de l'alimentation"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_POWER_MANAGEMENT_SETTINGS,
- "Modifier les réglages de gestion de l'alimentation."
- )
+ MENU_ENUM_SUBLABEL_POWER_MANAGEMENT_SETTINGS,
+ "Modifier les réglages de gestion de l'alimentation."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SUSTAINED_PERFORMANCE_MODE,
- "Mode de performances soutenues"
- )
+ MENU_ENUM_LABEL_VALUE_SUSTAINED_PERFORMANCE_MODE,
+ "Mode de performances soutenues"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_MPV_SUPPORT,
- "Prise en charge de mpv "
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_MPV_SUPPORT,
+ "Prise en charge de mpv "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_IDX,
- "Index"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_IDX,
+ "Index"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_MATCH_IDX,
- "Afficher la correspondance #"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_MATCH_IDX,
+ "Afficher la correspondance #"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_MATCH,
- "Adresse de la correspondance : %08X Masque : %02X"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_MATCH,
+ "Adresse de la correspondance : %08X Masque : %02X"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_COPY_MATCH,
- "Créer une correspondance de code #"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_COPY_MATCH,
+ "Créer une correspondance de code #"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_DELETE_MATCH,
- "Supprimer la correspondance #"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_DELETE_MATCH,
+ "Supprimer la correspondance #"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_BROWSE_MEMORY,
- "Parcourir l'adresse : %08X"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_BROWSE_MEMORY,
+ "Parcourir l'adresse : %08X"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_DESC,
- "Description"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_DESC,
+ "Description"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_STATE,
- "Activé"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_STATE,
+ "Activé"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_CODE,
- "Code"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_CODE,
+ "Code"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_HANDLER,
- "Gestionnaire"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_HANDLER,
+ "Gestionnaire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_MEMORY_SEARCH_SIZE,
- "Taille de la recherche dans la mémoire"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_MEMORY_SEARCH_SIZE,
+ "Taille de la recherche dans la mémoire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_TYPE,
- "Type"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_TYPE,
+ "Type"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_VALUE,
- "Valeur"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_VALUE,
+ "Valeur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_ADDRESS,
- "Adresse mémoire"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_ADDRESS,
+ "Adresse mémoire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_ADDRESS_BIT_POSITION,
- "Masque de l'adresse mémoire"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_ADDRESS_BIT_POSITION,
+ "Masque de l'adresse mémoire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_TYPE,
- "Vibrer lors de la mémoire"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_TYPE,
+ "Vibrer lors de la mémoire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_VALUE,
- "Valeur de la vibration"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_VALUE,
+ "Valeur de la vibration"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_PORT,
- "Port de la vibration"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_PORT,
+ "Port de la vibration"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_PRIMARY_STRENGTH,
- "Force principale de la vibration"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_PRIMARY_STRENGTH,
+ "Force principale de la vibration"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_PRIMARY_DURATION,
- "Durée principale de la vibration (ms)"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_PRIMARY_DURATION,
+ "Durée principale de la vibration (ms)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_SECONDARY_STRENGTH,
- "Force secondaire de la vibration"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_SECONDARY_STRENGTH,
+ "Force secondaire de la vibration"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_SECONDARY_DURATION,
- "Durée secondaire de la vibration (ms)"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_SECONDARY_DURATION,
+ "Durée secondaire de la vibration (ms)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_REPEAT_COUNT,
- "Nombre d'itérations"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_REPEAT_COUNT,
+ "Nombre d'itérations"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_REPEAT_ADD_TO_VALUE,
- "Augmenter la valeur à chaque itération"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_REPEAT_ADD_TO_VALUE,
+ "Augmenter la valeur à chaque itération"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_REPEAT_ADD_TO_ADDRESS,
- "Augmenter l'adresse à chaque itération"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_REPEAT_ADD_TO_ADDRESS,
+ "Augmenter l'adresse à chaque itération"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_ADD_NEW_AFTER,
- "Ajouter un nouveau cheat après celui-ci"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_ADD_NEW_AFTER,
+ "Ajouter un nouveau cheat après celui-ci"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_ADD_NEW_BEFORE,
- "Ajouter un nouveau cheat avant celui-ci"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_ADD_NEW_BEFORE,
+ "Ajouter un nouveau cheat avant celui-ci"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_COPY_AFTER,
- "Copier ce cheat après"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_COPY_AFTER,
+ "Copier ce cheat après"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_COPY_BEFORE,
- "Copier ce cheat avant"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_COPY_BEFORE,
+ "Copier ce cheat avant"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_DELETE,
- "Supprimer ce cheat"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_DELETE,
+ "Supprimer ce cheat"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_HANDLER_TYPE_EMU,
- "Emulateur"
- )
+ MENU_ENUM_LABEL_CHEAT_HANDLER_TYPE_EMU,
+ "Emulateur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_HANDLER_TYPE_RETRO,
- "RetroArch"
- )
+ MENU_ENUM_LABEL_CHEAT_HANDLER_TYPE_RETRO,
+ "RetroArch"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_TYPE_DISABLED,
- ""
- )
+ MENU_ENUM_LABEL_CHEAT_TYPE_DISABLED,
+ ""
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_TYPE_SET_TO_VALUE,
- "Régler à la valeur"
- )
+ MENU_ENUM_LABEL_CHEAT_TYPE_SET_TO_VALUE,
+ "Régler à la valeur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_TYPE_INCREASE_VALUE,
- "Augmenter par la valeur"
- )
+ MENU_ENUM_LABEL_CHEAT_TYPE_INCREASE_VALUE,
+ "Augmenter par la valeur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_TYPE_DECREASE_VALUE,
- "Diminuer par la valeur"
- )
+ MENU_ENUM_LABEL_CHEAT_TYPE_DECREASE_VALUE,
+ "Diminuer par la valeur"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_TYPE_RUN_NEXT_IF_EQ,
- "Exécuter le prochain cheat si la valeur = mémoire"
- )
+ MENU_ENUM_LABEL_CHEAT_TYPE_RUN_NEXT_IF_EQ,
+ "Exécuter le prochain cheat si la valeur = mémoire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_TYPE_RUN_NEXT_IF_NEQ,
- "Exécuter le prochain cheat si la valeur != mémoire"
- )
+ MENU_ENUM_LABEL_CHEAT_TYPE_RUN_NEXT_IF_NEQ,
+ "Exécuter le prochain cheat si la valeur != mémoire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_TYPE_RUN_NEXT_IF_LT,
- "Exécuter le prochain cheat si la valeur < mémoire"
- )
+ MENU_ENUM_LABEL_CHEAT_TYPE_RUN_NEXT_IF_LT,
+ "Exécuter le prochain cheat si la valeur < mémoire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_TYPE_RUN_NEXT_IF_GT,
- "Exécuter le prochain cheat si la valeur > mémoire"
- )
+ MENU_ENUM_LABEL_CHEAT_TYPE_RUN_NEXT_IF_GT,
+ "Exécuter le prochain cheat si la valeur > mémoire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_TYPE_DISABLED,
- ""
- )
+ MENU_ENUM_LABEL_RUMBLE_TYPE_DISABLED,
+ ""
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_TYPE_CHANGES,
- "Change"
- )
+ MENU_ENUM_LABEL_RUMBLE_TYPE_CHANGES,
+ "Change"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_TYPE_DOES_NOT_CHANGE,
- "Ne change pas"
- )
+ MENU_ENUM_LABEL_RUMBLE_TYPE_DOES_NOT_CHANGE,
+ "Ne change pas"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_TYPE_INCREASE,
- "Augmente"
- )
+ MENU_ENUM_LABEL_RUMBLE_TYPE_INCREASE,
+ "Augmente"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_TYPE_DECREASE,
- "Diminue"
- )
+ MENU_ENUM_LABEL_RUMBLE_TYPE_DECREASE,
+ "Diminue"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_TYPE_EQ_VALUE,
- "= valeur de vibration"
- )
+ MENU_ENUM_LABEL_RUMBLE_TYPE_EQ_VALUE,
+ "= valeur de vibration"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_TYPE_NEQ_VALUE,
- "!= valeur de vibration"
- )
+ MENU_ENUM_LABEL_RUMBLE_TYPE_NEQ_VALUE,
+ "!= valeur de vibration"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_TYPE_LT_VALUE,
- "< valeur de vibration"
- )
+ MENU_ENUM_LABEL_RUMBLE_TYPE_LT_VALUE,
+ "< valeur de vibration"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_TYPE_GT_VALUE,
- "> valeur de vibration"
- )
+ MENU_ENUM_LABEL_RUMBLE_TYPE_GT_VALUE,
+ "> valeur de vibration"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_TYPE_INCREASE_BY_VALUE,
- "Augmente par la valeur de vibration"
- )
+ MENU_ENUM_LABEL_RUMBLE_TYPE_INCREASE_BY_VALUE,
+ "Augmente par la valeur de vibration"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_TYPE_DECREASE_BY_VALUE,
- "Diminue par la valeur de vibration"
- )
+ MENU_ENUM_LABEL_RUMBLE_TYPE_DECREASE_BY_VALUE,
+ "Diminue par la valeur de vibration"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_MEMORY_SIZE_1,
- "1-bit, valeur max = 0x01"
- )
+ MENU_ENUM_LABEL_CHEAT_MEMORY_SIZE_1,
+ "1-bit, valeur max = 0x01"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_MEMORY_SIZE_2,
- "2-bit, valeur max = 0x03"
- )
+ MENU_ENUM_LABEL_CHEAT_MEMORY_SIZE_2,
+ "2-bit, valeur max = 0x03"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_MEMORY_SIZE_4,
- "4-bit, valeur max = 0x0F"
- )
+ MENU_ENUM_LABEL_CHEAT_MEMORY_SIZE_4,
+ "4-bit, valeur max = 0x0F"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_MEMORY_SIZE_8,
- "8-bit, valeur max = 0xFF"
- )
+ MENU_ENUM_LABEL_CHEAT_MEMORY_SIZE_8,
+ "8-bit, valeur max = 0xFF"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_MEMORY_SIZE_16,
- "16-bit, valeur max = 0xFFFF"
- )
+ MENU_ENUM_LABEL_CHEAT_MEMORY_SIZE_16,
+ "16-bit, valeur max = 0xFFFF"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_MEMORY_SIZE_32,
- "32-bit, valeur max = 0xFFFFFFFF"
- )
+ MENU_ENUM_LABEL_CHEAT_MEMORY_SIZE_32,
+ "32-bit, valeur max = 0xFFFFFFFF"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_PORT_0,
- "1"
- )
+ MENU_ENUM_LABEL_RUMBLE_PORT_0,
+ "1"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_PORT_1,
- "2"
- )
+ MENU_ENUM_LABEL_RUMBLE_PORT_1,
+ "2"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_PORT_2,
- "3"
- )
+ MENU_ENUM_LABEL_RUMBLE_PORT_2,
+ "3"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_PORT_3,
- "4"
- )
+ MENU_ENUM_LABEL_RUMBLE_PORT_3,
+ "4"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_PORT_4,
- "5"
- )
+ MENU_ENUM_LABEL_RUMBLE_PORT_4,
+ "5"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_PORT_5,
- "6"
- )
+ MENU_ENUM_LABEL_RUMBLE_PORT_5,
+ "6"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_PORT_6,
- "7"
- )
+ MENU_ENUM_LABEL_RUMBLE_PORT_6,
+ "7"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_PORT_7,
- "8"
- )
+ MENU_ENUM_LABEL_RUMBLE_PORT_7,
+ "8"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_PORT_8,
- "9"
- )
+ MENU_ENUM_LABEL_RUMBLE_PORT_8,
+ "9"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_PORT_9,
- "10"
- )
+ MENU_ENUM_LABEL_RUMBLE_PORT_9,
+ "10"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_PORT_10,
- "11"
- )
+ MENU_ENUM_LABEL_RUMBLE_PORT_10,
+ "11"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_PORT_11,
- "12"
- )
+ MENU_ENUM_LABEL_RUMBLE_PORT_11,
+ "12"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_PORT_12,
- "13"
- )
+ MENU_ENUM_LABEL_RUMBLE_PORT_12,
+ "13"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_PORT_13,
- "14"
- )
+ MENU_ENUM_LABEL_RUMBLE_PORT_13,
+ "14"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_PORT_14,
- "15"
- )
+ MENU_ENUM_LABEL_RUMBLE_PORT_14,
+ "15"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_PORT_15,
- "16"
- )
+ MENU_ENUM_LABEL_RUMBLE_PORT_15,
+ "16"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_RUMBLE_PORT_16,
- "Tous"
- )
+ MENU_ENUM_LABEL_RUMBLE_PORT_16,
+ "Tous"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_START_OR_CONT,
- "Lancer/continuer la recherche de cheats"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_START_OR_CONT,
+ "Lancer/continuer la recherche de cheats"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_START_OR_RESTART,
- "Lancer/redémarrer la recherche de cheats"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_START_OR_RESTART,
+ "Lancer/redémarrer la recherche de cheats"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_EXACT,
- "Recherche d'une valeur mémoire"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_EXACT,
+ "Recherche d'une valeur mémoire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_LT,
- "Recherche d'une valeur mémoire"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_LT,
+ "Recherche d'une valeur mémoire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_GT,
- "Recherche d'une valeur mémoire"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_GT,
+ "Recherche d'une valeur mémoire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_EQ,
- "Recherche d'une valeur mémoire"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_EQ,
+ "Recherche d'une valeur mémoire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_GTE,
- "Recherche d'une valeur mémoire"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_GTE,
+ "Recherche d'une valeur mémoire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_LTE,
- "Recherche d'une valeur mémoire"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_LTE,
+ "Recherche d'une valeur mémoire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_NEQ,
- "Recherche d'une valeur mémoire"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_NEQ,
+ "Recherche d'une valeur mémoire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_EQPLUS,
- "Recherche d'une valeur mémoire"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_EQPLUS,
+ "Recherche d'une valeur mémoire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_EQMINUS,
- "Recherche d'une valeur mémoire"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_EQMINUS,
+ "Recherche d'une valeur mémoire"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_ADD_MATCHES,
- "Ajouter les %u correspondances à votre liste"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_ADD_MATCHES,
+ "Ajouter les %u correspondances à votre liste"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_VIEW_MATCHES,
- "Voir la liste des %u correspondances"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_VIEW_MATCHES,
+ "Voir la liste des %u correspondances"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_CREATE_OPTION,
- "Créer un code à partir de cette correspondance"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_CREATE_OPTION,
+ "Créer un code à partir de cette correspondance"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_DELETE_OPTION,
- "Supprimer cette correspondance"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_DELETE_OPTION,
+ "Supprimer cette correspondance"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_ADD_NEW_TOP,
- "Ajouter un nouveau code (en haut)"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_ADD_NEW_TOP,
+ "Ajouter un nouveau code (en haut)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_ADD_NEW_BOTTOM,
- "Ajouter un nouveau code (en bas)"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_ADD_NEW_BOTTOM,
+ "Ajouter un nouveau code (en bas)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_DELETE_ALL,
- "Supprimer tous les codes"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_DELETE_ALL,
+ "Supprimer tous les codes"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_RELOAD_CHEATS,
- "Recharger les cheats du jeu"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_RELOAD_CHEATS,
+ "Recharger les cheats du jeu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_SEARCH_EXACT_VAL,
- "Égale à %u (%X)"
- )
+ MENU_ENUM_LABEL_CHEAT_SEARCH_EXACT_VAL,
+ "Égale à %u (%X)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_SEARCH_LT_VAL,
- "Inférieure à la précédente"
- )
+ MENU_ENUM_LABEL_CHEAT_SEARCH_LT_VAL,
+ "Inférieure à la précédente"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_SEARCH_GT_VAL,
- "Supérieure à la précédente"
- )
+ MENU_ENUM_LABEL_CHEAT_SEARCH_GT_VAL,
+ "Supérieure à la précédente"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_SEARCH_LTE_VAL,
- "Inférieure ou égale à la précédente"
- )
+ MENU_ENUM_LABEL_CHEAT_SEARCH_LTE_VAL,
+ "Inférieure ou égale à la précédente"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_SEARCH_GTE_VAL,
- "Supérieure ou égale à la précédente"
- )
+ MENU_ENUM_LABEL_CHEAT_SEARCH_GTE_VAL,
+ "Supérieure ou égale à la précédente"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_SEARCH_EQ_VAL,
- "Égale à la précédente"
- )
+ MENU_ENUM_LABEL_CHEAT_SEARCH_EQ_VAL,
+ "Égale à la précédente"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_SEARCH_NEQ_VAL,
- "Différente de la précédente"
- )
+ MENU_ENUM_LABEL_CHEAT_SEARCH_NEQ_VAL,
+ "Différente de la précédente"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_SEARCH_EQPLUS_VAL,
- "Égale à la précédente+%u (%X)"
- )
+ MENU_ENUM_LABEL_CHEAT_SEARCH_EQPLUS_VAL,
+ "Égale à la précédente+%u (%X)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_SEARCH_EQMINUS_VAL,
- "Égale à la précédente-%u (%X)"
- )
+ MENU_ENUM_LABEL_CHEAT_SEARCH_EQMINUS_VAL,
+ "Égale à la précédente-%u (%X)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_CHEAT_SEARCH_SETTINGS,
- "Lancer/continuer la recherche de cheats"
- )
+ MENU_ENUM_LABEL_CHEAT_SEARCH_SETTINGS,
+ "Lancer/continuer la recherche de cheats"
+ )
MSG_HASH(
- MSG_CHEAT_INIT_SUCCESS,
- "Recherche de cheats lancée avec succès"
- )
+ MSG_CHEAT_INIT_SUCCESS,
+ "Lancement de la recherche de cheats réussi"
+ )
MSG_HASH(
- MSG_CHEAT_INIT_FAIL,
- "Impossible de lancer la recherche de cheats"
- )
+ MSG_CHEAT_INIT_FAIL,
+ "Impossible de lancer la recherche de cheats"
+ )
MSG_HASH(
- MSG_CHEAT_SEARCH_NOT_INITIALIZED,
- "La recherche n'a pas été initialisée/démarrée"
- )
+ MSG_CHEAT_SEARCH_NOT_INITIALIZED,
+ "La recherche n'a pas été initialisée/démarrée"
+ )
MSG_HASH(
- MSG_CHEAT_SEARCH_FOUND_MATCHES,
- "Nouveau nombre de correspondances = %u"
- )
+ MSG_CHEAT_SEARCH_FOUND_MATCHES,
+ "Nouveau nombre de correspondances = %u"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CHEAT_BIG_ENDIAN,
- "Gros-boutien"
- )
+ MENU_ENUM_LABEL_VALUE_CHEAT_BIG_ENDIAN,
+ "Gros-boutien"
+ )
MSG_HASH(
- MSG_CHEAT_SEARCH_ADDED_MATCHES_SUCCESS,
- "Ajouté %u correspondances"
- )
+ MSG_CHEAT_SEARCH_ADDED_MATCHES_SUCCESS,
+ "Ajouté %u correspondances"
+ )
MSG_HASH(
- MSG_CHEAT_SEARCH_ADDED_MATCHES_FAIL,
- "Impossible d'ajouter les correspondances"
- )
+ MSG_CHEAT_SEARCH_ADDED_MATCHES_FAIL,
+ "Impossible d'ajouter les correspondances"
+ )
MSG_HASH(
- MSG_CHEAT_SEARCH_ADD_MATCH_SUCCESS,
- "Code créé à partir de la correspondance"
- )
+ MSG_CHEAT_SEARCH_ADD_MATCH_SUCCESS,
+ "Code créé à partir de la correspondance"
+ )
MSG_HASH(
- MSG_CHEAT_SEARCH_ADD_MATCH_FAIL,
- "Échec de la création du code"
- )
+ MSG_CHEAT_SEARCH_ADD_MATCH_FAIL,
+ "Création du code échouée"
+ )
MSG_HASH(
- MSG_CHEAT_SEARCH_DELETE_MATCH_SUCCESS,
- "Correspondance supprimée"
- )
+ MSG_CHEAT_SEARCH_DELETE_MATCH_SUCCESS,
+ "Correspondance supprimée"
+ )
MSG_HASH(
- MSG_CHEAT_SEARCH_ADDED_MATCHES_TOO_MANY,
- "Pas assez de place. Le nombre maximum de cheats possibles est 100."
- )
+ MSG_CHEAT_SEARCH_ADDED_MATCHES_TOO_MANY,
+ "Pas assez de place. Le nombre maximum de cheats possibles est 100."
+ )
MSG_HASH(
- MSG_CHEAT_ADD_TOP_SUCCESS,
- "Nouveau cheat ajouté en haut de la liste."
- )
+ MSG_CHEAT_ADD_TOP_SUCCESS,
+ "Nouveau cheat ajouté en haut de la liste."
+ )
MSG_HASH(
- MSG_CHEAT_ADD_BOTTOM_SUCCESS,
- "Nouveau cheat ajouté en bas de la liste."
- )
+ MSG_CHEAT_ADD_BOTTOM_SUCCESS,
+ "Nouveau cheat ajouté en bas de la liste."
+ )
MSG_HASH(
- MSG_CHEAT_DELETE_ALL_INSTRUCTIONS,
- "Appuyez cinq fois sur Droite pour supprimer tous les cheats."
- )
+ MSG_CHEAT_DELETE_ALL_INSTRUCTIONS,
+ "Appuyez cinq fois sur Droite pour supprimer tous les cheats."
+ )
MSG_HASH(
- MSG_CHEAT_DELETE_ALL_SUCCESS,
- "Tous les cheats ont été supprimés."
- )
+ MSG_CHEAT_DELETE_ALL_SUCCESS,
+ "Tous les cheats ont été supprimés."
+ )
MSG_HASH(
- MSG_CHEAT_ADD_BEFORE_SUCCESS,
- "Nouveau cheat ajouté avant celui-ci."
- )
+ MSG_CHEAT_ADD_BEFORE_SUCCESS,
+ "Nouveau cheat ajouté avant celui-ci."
+ )
MSG_HASH(
- MSG_CHEAT_ADD_AFTER_SUCCESS,
- "Nouveau cheat ajouté après celui-ci."
- )
+ MSG_CHEAT_ADD_AFTER_SUCCESS,
+ "Nouveau cheat ajouté après celui-ci."
+ )
MSG_HASH(
- MSG_CHEAT_COPY_BEFORE_SUCCESS,
- "Cheat copié avant celui-ci."
- )
+ MSG_CHEAT_COPY_BEFORE_SUCCESS,
+ "Cheat copié avant celui-ci."
+ )
MSG_HASH(
- MSG_CHEAT_COPY_AFTER_SUCCESS,
- "Cheat copié après celui-ci."
- )
+ MSG_CHEAT_COPY_AFTER_SUCCESS,
+ "Cheat copié après celui-ci."
+ )
MSG_HASH(
- MSG_CHEAT_DELETE_SUCCESS,
- "Cheat supprimé."
- )
+ MSG_CHEAT_DELETE_SUCCESS,
+ "Cheat supprimé."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_PROGRESS,
- "Progression :"
- )
+ MENU_ENUM_LABEL_VALUE_QT_PROGRESS,
+ "Progression :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_ALL_PLAYLISTS_LIST_MAX_COUNT,
- "\"Toutes les playlists\" nombre maximum d'entrées dans la liste :"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_ALL_PLAYLISTS_LIST_MAX_COUNT,
+ "\"Toutes les playlists\" nombre maximum d'entrées dans la liste :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_ALL_PLAYLISTS_GRID_MAX_COUNT,
- "\"Toutes les playlists\" nombre maximum d'entrées dans la grille :"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_ALL_PLAYLISTS_GRID_MAX_COUNT,
+ "\"Toutes les playlists\" nombre maximum d'entrées dans la grille :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_SHOW_HIDDEN_FILES,
- "Afficher les fichiers et dossiers cachés :"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_SHOW_HIDDEN_FILES,
+ "Afficher les fichiers et dossiers cachés :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_NEW_PLAYLIST,
- "Nouvelle liste de lecture"
- )
+ MENU_ENUM_LABEL_VALUE_QT_NEW_PLAYLIST,
+ "Nouvelle liste de lecture"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_ENTER_NEW_PLAYLIST_NAME,
- "Veuillez entrer le nouveau nom de la liste de lecture :"
- )
+ MENU_ENUM_LABEL_VALUE_QT_ENTER_NEW_PLAYLIST_NAME,
+ "Veuillez entrer le nouveau nom de la liste de lecture :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_DELETE_PLAYLIST,
- "Supprimer la liste de lecture"
- )
+ MENU_ENUM_LABEL_VALUE_QT_DELETE_PLAYLIST,
+ "Supprimer la liste de lecture"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_RENAME_PLAYLIST,
- "Renommer la liste de lecture"
- )
+ MENU_ENUM_LABEL_VALUE_QT_RENAME_PLAYLIST,
+ "Renommer la liste de lecture"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_CONFIRM_DELETE_PLAYLIST,
- "Êtes-vous sûr de vouloir supprimer la liste de lecture \"%1\"?"
- )
+ MENU_ENUM_LABEL_VALUE_QT_CONFIRM_DELETE_PLAYLIST,
+ "Êtes-vous sûr de vouloir supprimer la liste de lecture \"%1\"?"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_QUESTION,
- "Question"
- )
+ MENU_ENUM_LABEL_VALUE_QT_QUESTION,
+ "Question"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_COULD_NOT_DELETE_FILE,
- "Impossible de supprimer le fichier."
- )
+ MENU_ENUM_LABEL_VALUE_QT_COULD_NOT_DELETE_FILE,
+ "Impossible de supprimer le fichier."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_COULD_NOT_RENAME_FILE,
- "Impossible de renommer le fichier."
- )
+ MENU_ENUM_LABEL_VALUE_QT_COULD_NOT_RENAME_FILE,
+ "Impossible de renommer le fichier."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_GATHERING_LIST_OF_FILES,
- "Collecte de la liste des fichiers..."
- )
+ MENU_ENUM_LABEL_VALUE_QT_GATHERING_LIST_OF_FILES,
+ "Collecte de la liste des fichiers..."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_ADDING_FILES_TO_PLAYLIST,
- "Ajout de fichiers à la playlist..."
- )
+ MENU_ENUM_LABEL_VALUE_QT_ADDING_FILES_TO_PLAYLIST,
+ "Ajout de fichiers à la playlist..."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_PLAYLIST_ENTRY,
- "Entrée de la liste de lecture"
- )
+ MENU_ENUM_LABEL_VALUE_QT_PLAYLIST_ENTRY,
+ "Entrée dans la liste de lecture"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_PLAYLIST_ENTRY_NAME,
- "Nom :"
- )
+ MENU_ENUM_LABEL_VALUE_QT_PLAYLIST_ENTRY_NAME,
+ "Nom :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_PLAYLIST_ENTRY_PATH,
- "Emplacement :"
- )
+ MENU_ENUM_LABEL_VALUE_QT_PLAYLIST_ENTRY_PATH,
+ "Emplacement :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_PLAYLIST_ENTRY_CORE,
- "Cœur :"
- )
+ MENU_ENUM_LABEL_VALUE_QT_PLAYLIST_ENTRY_CORE,
+ "Cœur :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_PLAYLIST_ENTRY_DATABASE,
- "Base de données :"
- )
+ MENU_ENUM_LABEL_VALUE_QT_PLAYLIST_ENTRY_DATABASE,
+ "Base de données :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_PLAYLIST_ENTRY_EXTENSIONS,
- "Extensions :"
- )
+ MENU_ENUM_LABEL_VALUE_QT_PLAYLIST_ENTRY_EXTENSIONS,
+ "Extensions :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_PLAYLIST_ENTRY_EXTENSIONS_PLACEHOLDER,
- "(séparées par des espaces; toutes sont inclues par défaut)"
- )
+ MENU_ENUM_LABEL_VALUE_QT_PLAYLIST_ENTRY_EXTENSIONS_PLACEHOLDER,
+ "(séparées par des espaces; toutes sont inclues par défaut)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_PLAYLIST_ENTRY_FILTER_INSIDE_ARCHIVES,
- "Filtrer à l'intérieur des archives"
- )
+ MENU_ENUM_LABEL_VALUE_QT_PLAYLIST_ENTRY_FILTER_INSIDE_ARCHIVES,
+ "Filtrer à l'intérieur des archives"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_FOR_THUMBNAILS,
- "(utilisée pour trouver les miniatures)"
- )
+ MENU_ENUM_LABEL_VALUE_QT_FOR_THUMBNAILS,
+ "(utilisé pour trouver les miniatures)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_CONFIRM_DELETE_PLAYLIST_ITEM,
- "Êtes-vous sûr de vouloir supprimer l'élément \"%1\"?"
- )
+ MENU_ENUM_LABEL_VALUE_QT_CONFIRM_DELETE_PLAYLIST_ITEM,
+ "Êtes-vous sûr de vouloir supprimer l'élément \"%1\"?"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_CANNOT_ADD_TO_ALL_PLAYLISTS,
- "Veuillez d'abord choisir une seule playlist."
- )
+ MENU_ENUM_LABEL_VALUE_QT_CANNOT_ADD_TO_ALL_PLAYLISTS,
+ "Veuillez d'abord choisir une seule playlist."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_DELETE,
- "Supprimer"
- )
+ MENU_ENUM_LABEL_VALUE_QT_DELETE,
+ "Supprimer"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_ADD_ENTRY,
- "Ajouter une entrée..."
- )
+ MENU_ENUM_LABEL_VALUE_QT_ADD_ENTRY,
+ "Ajouter une entrée..."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_ADD_FILES,
- "Ajouter un ou plusieurs fichiers..."
- )
+ MENU_ENUM_LABEL_VALUE_QT_ADD_FILES,
+ "Ajouter un ou plusieurs fichiers..."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_ADD_FOLDER,
- "Ajouter un dossier..."
- )
+ MENU_ENUM_LABEL_VALUE_QT_ADD_FOLDER,
+ "Ajouter un dossier..."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_EDIT,
- "Modifier"
- )
+ MENU_ENUM_LABEL_VALUE_QT_EDIT,
+ "Modifier"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_SELECT_FILES,
- "Sélectionner des fichiers"
- )
+ MENU_ENUM_LABEL_VALUE_QT_SELECT_FILES,
+ "Sélectionner des fichiers"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_SELECT_FOLDER,
- "Sélectionner un dossier"
- )
+ MENU_ENUM_LABEL_VALUE_QT_SELECT_FOLDER,
+ "Sélectionner un dossier"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_FIELD_MULTIPLE,
- ""
- )
+ MENU_ENUM_LABEL_VALUE_QT_FIELD_MULTIPLE,
+ ""
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_COULD_NOT_UPDATE_PLAYLIST_ENTRY,
- "Erreur lors de la mise à jour de l'entrée dans la liste de lecture."
- )
+ MENU_ENUM_LABEL_VALUE_QT_COULD_NOT_UPDATE_PLAYLIST_ENTRY,
+ "Erreur lors de la mise à jour de l'entrée dans la liste de lecture."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_PLEASE_FILL_OUT_REQUIRED_FIELDS,
- "Veuillez remplir tous les champs requis."
- )
+ MENU_ENUM_LABEL_VALUE_QT_PLEASE_FILL_OUT_REQUIRED_FIELDS,
+ "Veuillez remplir tous les champs requis."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_UPDATE_RETROARCH_NIGHTLY,
- "Mettre à jour RetroArch (nightly)"
- )
+ MENU_ENUM_LABEL_VALUE_QT_UPDATE_RETROARCH_NIGHTLY,
+ "Mettre à jour RetroArch (nightly)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_UPDATE_RETROARCH_FINISHED,
- "RetroArch a été mis à jour avec succès. Veuillez redémarrer l'application pour que les modifications prennent effet."
- )
+ MENU_ENUM_LABEL_VALUE_QT_UPDATE_RETROARCH_FINISHED,
+ "RetroArch a été mis à jour avec succès. Veuillez redémarrer l'application pour que les modifications prennent effet."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_UPDATE_RETROARCH_FAILED,
- "Mise à jour échouée."
- )
+ MENU_ENUM_LABEL_VALUE_QT_UPDATE_RETROARCH_FAILED,
+ "Mise à jour échouée."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_HELP_ABOUT_CONTRIBUTORS,
- "Contributeurs"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_HELP_ABOUT_CONTRIBUTORS,
+ "Contributeurs"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_CURRENT_SHADER,
- "Shader actuel"
- )
+ MENU_ENUM_LABEL_VALUE_QT_CURRENT_SHADER,
+ "Shader actuel"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MOVE_DOWN,
- "Déplacer vers le bas"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MOVE_DOWN,
+ "Déplacer vers le bas"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MOVE_UP,
- "Déplacer vers le haut"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MOVE_UP,
+ "Déplacer vers le haut"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_LOAD,
- "Charger"
- )
+ MENU_ENUM_LABEL_VALUE_QT_LOAD,
+ "Charger"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_SAVE,
- "Sauvegarder"
- )
+ MENU_ENUM_LABEL_VALUE_QT_SAVE,
+ "Sauvegarder"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_REMOVE,
- "Supprimer"
- )
+ MENU_ENUM_LABEL_VALUE_QT_REMOVE,
+ "Supprimer"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_APPLY,
- "Appliquer"
- )
+ MENU_ENUM_LABEL_VALUE_QT_REMOVE_PASSES,
+ "Supprimer les passages"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_SHADER_ADD_PASS,
- "Ajouter un passage"
- )
+ MENU_ENUM_LABEL_VALUE_QT_APPLY,
+ "Appliquer"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_SHADER_CLEAR_ALL_PASSES,
- "Supprimer tous les passages"
- )
+ MENU_ENUM_LABEL_VALUE_QT_SHADER_ADD_PASS,
+ "Ajouter un passage"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_SHADER_NO_PASSES,
- "Aucun passage de shader."
- )
+ MENU_ENUM_LABEL_VALUE_QT_SHADER_CLEAR_ALL_PASSES,
+ "Supprimer tous les passages"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_RESET_PASS,
- "Réinitialiser le passage"
- )
+ MENU_ENUM_LABEL_VALUE_QT_SHADER_NO_PASSES,
+ "Aucun passage de shader."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_RESET_ALL_PASSES,
- "Réinitialiser tous les passages"
- )
+ MENU_ENUM_LABEL_VALUE_QT_RESET_PASS,
+ "Réinitialiser le passage"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_RESET_PARAMETER,
- "Réinitialiser le paramètre"
- )
+ MENU_ENUM_LABEL_VALUE_QT_RESET_ALL_PASSES,
+ "Réinitialiser tous les passages"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_DOWNLOAD_THUMBNAIL,
- "Télécharger la miniature"
- )
+ MENU_ENUM_LABEL_VALUE_QT_RESET_PARAMETER,
+ "Réinitialiser le paramètre"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_DOWNLOAD_ALREADY_IN_PROGRESS,
- "Un téléchargement est déjà en cours."
- )
+ MENU_ENUM_LABEL_VALUE_QT_DOWNLOAD_THUMBNAIL,
+ "Télécharger la miniature"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_STARTUP_PLAYLIST,
- "Démarrer sur la playlist :"
- )
+ MENU_ENUM_LABEL_VALUE_QT_DOWNLOAD_ALREADY_IN_PROGRESS,
+ "Un téléchargement est déjà en cours."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_THUMBNAIL_TYPE,
- "Miniatures"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_STARTUP_PLAYLIST,
+ "Démarrer dans la playlist :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_THUMBNAIL_CACHE_LIMIT,
- "Limite du cache des miniatures :"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_THUMBNAIL_TYPE,
+ "Miniatures"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_DOWNLOAD_ALL_THUMBNAILS,
- "Télécharger toutes les miniatures"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_THUMBNAIL_CACHE_LIMIT,
+ "Limite du cache des miniatures :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_DOWNLOAD_ALL_THUMBNAILS_ENTIRE_SYSTEM,
- "Système entier"
- )
+ MENU_ENUM_LABEL_VALUE_QT_DOWNLOAD_ALL_THUMBNAILS,
+ "Télécharger toutes les miniatures"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_DOWNLOAD_ALL_THUMBNAILS_THIS_PLAYLIST,
- "Cette liste de lecture"
- )
+ MENU_ENUM_LABEL_VALUE_QT_DOWNLOAD_ALL_THUMBNAILS_ENTIRE_SYSTEM,
+ "Système entier"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_PACK_DOWNLOADED_SUCCESSFULLY,
- "Miniatures téléchargées avec succès."
- )
+ MENU_ENUM_LABEL_VALUE_QT_DOWNLOAD_ALL_THUMBNAILS_THIS_PLAYLIST,
+ "Cette liste de lecture"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_DOWNLOAD_PLAYLIST_THUMBNAIL_PROGRESS,
- "Réussites : %1 Échecs : %2"
- )
+ MENU_ENUM_LABEL_VALUE_QT_THUMBNAIL_PACK_DOWNLOADED_SUCCESSFULLY,
+ "Miniatures téléchargées avec succès."
+ )
MSG_HASH(
- MSG_DEVICE_CONFIGURED_IN_PORT,
- "Configuré dans le port :"
- )
+ MENU_ENUM_LABEL_VALUE_QT_DOWNLOAD_PLAYLIST_THUMBNAIL_PROGRESS,
+ "Réussites : %1 Échecs : %2"
+ )
MSG_HASH(
- MSG_FAILED_TO_SET_DISK,
- "Impossible de paramétrer le disque"
- )
+ MSG_DEVICE_CONFIGURED_IN_PORT,
+ "Configuré dans le port :"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_CORE_OPTIONS,
- "Options de cœur"
- )
+ MSG_FAILED_TO_SET_DISK,
+ "Impossible de paramétrer le disque"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_ADAPTIVE_VSYNC,
- "Synchronisation verticale (V-Sync) adaptative"
- )
+ MENU_ENUM_LABEL_VALUE_QT_CORE_OPTIONS,
+ "Options de cœur"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_ADAPTIVE_VSYNC,
- "La synchronisation verticale (V-Sync) est activée jusqu'à ce que les performances descendent en dessous de la fréquence rafraîchissement cible.\n"
- "Cela peut minimiser les saccades lorsque les performances sont inférieures au temps réel, et être plus économe en énergie."
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_ADAPTIVE_VSYNC,
+ "Synchronisation verticale (V-Sync) adaptative"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CRT_SWITCHRES_SETTINGS,
- "Résolution adaptée aux écrans CRT "
- )
+ MENU_ENUM_SUBLABEL_VIDEO_ADAPTIVE_VSYNC,
+ "La synchronisation verticale (V-Sync) est activée jusqu'à ce que les performances descendent en dessous de la fréquence de rafraîchissement cible.\n"
+ "Cela peut minimiser les saccades lorsque les performances sont inférieures au temps réel, et être plus économe en énergie."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CRT_SWITCHRES_SETTINGS,
- "Produit des signaux natifs de faible résolution pour une utilisation avec les écrans à tube cathodique (CRT)."
- )
+ MENU_ENUM_LABEL_VALUE_CRT_SWITCHRES_SETTINGS,
+ "Résolution adaptée aux écrans CRT "
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CRT_SWITCH_X_AXIS_CENTERING,
- "Faire défiler cette valeur si l'image n'est pas centrée correctement à l'écran."
- )
+ MENU_ENUM_SUBLABEL_CRT_SWITCHRES_SETTINGS,
+ "Produit des signaux natifs de faible résolution pour une utilisation avec les écrans à tube cathodique (CRT)."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CRT_SWITCH_X_AXIS_CENTERING,
- "Centrage sur l'axe X "
- )
+ MENU_ENUM_SUBLABEL_CRT_SWITCH_X_AXIS_CENTERING,
+ "Faire défiler cette valeur si l'image n'est pas centrée correctement à l'écran."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_USE_CUSTOM_REFRESH_RATE,
- "Utiliser une fréquence de rafraîchissement personnalisée spécifiée dans le fichier de configuration si nécessaire."
- )
+ MENU_ENUM_LABEL_VALUE_CRT_SWITCH_X_AXIS_CENTERING,
+ "Centrage sur l'axe X "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_USE_CUSTOM_REFRESH_RATE,
- "Fréquence de rafraîchissement personnalisée"
- )
+ MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_USE_CUSTOM_REFRESH_RATE,
+ "Utiliser une fréquence de rafraîchissement personnalisée spécifiée dans le fichier de configuration si nécessaire."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_OUTPUT_DISPLAY_ID,
- "Sélectionner le port de sortie connecté à l'écran à tube cathodique (CRT)."
- )
+ MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_USE_CUSTOM_REFRESH_RATE,
+ "Fréquence de rafraîchissement personnalisée"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_OUTPUT_DISPLAY_ID,
- "ID d'affichage de la sortie"
- )
+ MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_OUTPUT_DISPLAY_ID,
+ "Sélectionner le port de sortie connecté à l'écran à tube cathodique (CRT)."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUICK_MENU_START_RECORDING,
- "Lancer l'enregistrement"
- )
+ MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_OUTPUT_DISPLAY_ID,
+ "ID d'affichage de la sortie"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUICK_MENU_START_RECORDING,
- "Lance l'enregistrement."
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_START_RECORDING,
+ "Lancer l'enregistrement"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUICK_MENU_STOP_RECORDING,
- "Arrêter l'enregistrement"
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_START_RECORDING,
+ "Lance l'enregistrement."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUICK_MENU_STOP_RECORDING,
- "Arrête l'enregistrement."
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_STOP_RECORDING,
+ "Arrêter l'enregistrement"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUICK_MENU_START_STREAMING,
- "Lancer le streaming"
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_STOP_RECORDING,
+ "Arrête l'enregistrement."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUICK_MENU_START_STREAMING,
- "Lance le streaming."
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_START_STREAMING,
+ "Lancer le streaming"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QUICK_MENU_STOP_STREAMING,
- "Arrêter le streaming"
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_START_STREAMING,
+ "Lance le streaming."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_QUICK_MENU_STOP_STREAMING,
- "Arrête le streaming."
- )
+ MENU_ENUM_LABEL_VALUE_QUICK_MENU_STOP_STREAMING,
+ "Arrêter le streaming"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_RECORDING_TOGGLE,
- "Enregistrement (activer/désactiver)"
- )
+ MENU_ENUM_SUBLABEL_QUICK_MENU_STOP_STREAMING,
+ "Arrête le streaming."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_META_STREAMING_TOGGLE,
- "Streaming (activer/désactiver)"
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_RECORDING_TOGGLE,
+ "Enregistrement (activer/désactiver)"
+ )
MSG_HASH(
- MSG_CHEEVOS_HARDCORE_MODE_DISABLED,
- "Une sauvegarde instantanée a été chargée, succès en mode Hardcore désactivés pour la session en cours. Redémarrer pour activer le mode hardcore."
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_STREAMING_TOGGLE,
+ "Streaming (activer/désactiver)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY,
- "Qualité de l'enregistrement "
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_META_AI_SERVICE,
+ "Service IA"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY,
- "Qualité de la diffusion"
- )
+ MSG_CHEEVOS_HARDCORE_MODE_DISABLED,
+ "Une sauvegarde instantanée a été chargée, succès en mode Hardcore désactivés pour la session en cours. Redémarrer pour activer le mode hardcore."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_STREAMING_URL,
- "URL de la diffusion "
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY,
+ "Qualité de l'enregistrement "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT,
- "Port de stream UDP "
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY,
+ "Qualité de la diffusion"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ACCOUNTS_TWITCH,
- "Twitch"
- )
+ MENU_ENUM_LABEL_VALUE_STREAMING_URL,
+ "URL de la diffusion "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ACCOUNTS_YOUTUBE,
- "YouTube"
- )
+ MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT,
+ "Port de stream UDP "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TWITCH_STREAM_KEY,
- "Clé de streaming Twitch "
- )
+ MENU_ENUM_LABEL_VALUE_ACCOUNTS_TWITCH,
+ "Twitch"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_YOUTUBE_STREAM_KEY,
- "Clé de streaming YouTube "
- )
+ MENU_ENUM_LABEL_VALUE_ACCOUNTS_YOUTUBE,
+ "YouTube"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_STREAMING_MODE,
- "Mode streaming"
- )
+ MENU_ENUM_LABEL_VALUE_TWITCH_STREAM_KEY,
+ "Clé de streaming Twitch "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_STREAMING_TITLE,
- "Titre de la diffusion "
- )
+ MENU_ENUM_LABEL_VALUE_YOUTUBE_STREAM_KEY,
+ "Clé de streaming YouTube "
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_INPUT_SPLIT_JOYCON,
- "Joy-Con détachés"
- )
+ MENU_ENUM_LABEL_VALUE_STREAMING_MODE,
+ "Mode streaming"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RESET_TO_DEFAULT_CONFIG,
- "Réinitialiser aux valeurs par défaut"
- )
+ MENU_ENUM_LABEL_VALUE_STREAMING_TITLE,
+ "Titre de la diffusion "
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_RESET_TO_DEFAULT_CONFIG,
- "Réinitialiser la configuration actuelle aux valeurs par défaut."
- )
+ MENU_ENUM_LABEL_VALUE_INPUT_SPLIT_JOYCON,
+ "Joy-Con détachés"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_OK,
- "Confirmer"
- )
+ MENU_ENUM_LABEL_VALUE_RESET_TO_DEFAULT_CONFIG,
+ "Réinitialiser aux valeurs par défaut"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME,
- "Thème de couleur du menu"
- )
+ MENU_ENUM_SUBLABEL_RESET_TO_DEFAULT_CONFIG,
+ "Réinitialiser la configuration actuelle aux valeurs par défaut."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE,
- "Blanc basique"
- )
+ MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_OK,
+ "Confirmer"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK,
- "Noir basique"
- )
+ MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME,
+ "Thème de couleur du menu"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME,
- "Sélectionner un thème de couleur différent."
- )
+ MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE,
+ "Blanc basique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_OZONE_COLLAPSE_SIDEBAR,
- "Réduire la barre latérale"
- )
+ MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK,
+ "Noir basique"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_OZONE_COLLAPSE_SIDEBAR,
- "Barre latérale gauche toujours réduite."
- )
+ MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME,
+ "Sélectionner un thème de couleur différent."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_USE_PREFERRED_SYSTEM_COLOR_THEME,
- "Utiliser le thème de couleur préféré du système"
- )
+ MENU_ENUM_LABEL_VALUE_OZONE_COLLAPSE_SIDEBAR,
+ "Réduire la barre latérale"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_MENU_USE_PREFERRED_SYSTEM_COLOR_THEME,
- "Utilisez le thème de couleur de votre système d'exploitation (le cas échéant) - remplace les réglages du thème."
- )
+ MENU_ENUM_SUBLABEL_OZONE_COLLAPSE_SIDEBAR,
+ "Barre latérale gauche toujours réduite."
+ )
MSG_HASH(
- MSG_RESAMPLER_QUALITY_LOWEST,
- "La plus basse"
- )
+ MENU_ENUM_LABEL_VALUE_OZONE_TRUNCATE_PLAYLIST_NAME,
+ "Tronquer le nom des listes de lecture"
+ )
MSG_HASH(
- MSG_RESAMPLER_QUALITY_LOWER,
- "Inférieure"
- )
+ MENU_ENUM_SUBLABEL_OZONE_TRUNCATE_PLAYLIST_NAME,
+ "Si cette option est activée, le nom des systèmes sera retiré des listes de lecture. Par exemple, 'PlayStation' sera affiché au lieu de 'Sony - PlayStation'. Les changements requièrent un redémarrage pour prendre effet."
+ )
MSG_HASH(
- MSG_RESAMPLER_QUALITY_NORMAL,
- "Normale"
- )
+ MENU_ENUM_LABEL_VALUE_OZONE_SCROLL_CONTENT_METADATA,
+ "Utiliser le défilement de texte pour les métadonnées du contenu"
+ )
MSG_HASH(
- MSG_RESAMPLER_QUALITY_HIGHER,
- "Supérieure"
- )
+ MENU_ENUM_SUBLABEL_OZONE_SCROLL_CONTENT_METADATA,
+ "Si activée, cette option affichera chaque élément de métadonnées du contenu sur la barre latérale droite des listes de lectures (cœur associé, temps de jeu) sur une seule ligne; défilant si le texte est trop long pour la barre latérale. Si désactivée, chaque élément de métadonnées sera affiché statiquement, allant à la ligne si besoin."
+ )
MSG_HASH(
- MSG_RESAMPLER_QUALITY_HIGHEST,
- "La plus élevée"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_USE_PREFERRED_SYSTEM_COLOR_THEME,
+ "Utiliser le thème de couleur préféré du système"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NO_MUSIC_AVAILABLE,
- "Aucune musique disponible."
- )
+ MENU_ENUM_SUBLABEL_MENU_USE_PREFERRED_SYSTEM_COLOR_THEME,
+ "Utilisez le thème de couleur de votre système d'exploitation (le cas échéant) - remplace les réglages du thème."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NO_VIDEOS_AVAILABLE,
- "Aucune vidéo disponible."
- )
+ MSG_RESAMPLER_QUALITY_LOWEST,
+ "La plus basse"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NO_IMAGES_AVAILABLE,
- "Aucune image disponible."
- )
+ MSG_RESAMPLER_QUALITY_LOWER,
+ "Inférieure"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_NO_FAVORITES_AVAILABLE,
- "Aucun favori disponible."
- )
+ MSG_RESAMPLER_QUALITY_NORMAL,
+ "Normale"
+ )
MSG_HASH(
- MSG_MISSING_ASSETS,
- "Avertissement: Assets manquants, utilisez la mise à jour en ligne si disponible"
- )
+ MSG_RESAMPLER_QUALITY_HIGHER,
+ "Supérieure"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
- "Restaurer l'aspect de la fenêtre"
- )
+ MSG_RESAMPLER_QUALITY_HIGHEST,
+ "La plus élevée"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_HOLD_START,
- "Maintenir Start (2 secondes)"
- )
+ MENU_ENUM_LABEL_VALUE_NO_MUSIC_AVAILABLE,
+ "Aucune musique disponible."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PLAYLIST_USE_OLD_FORMAT,
- "Sauvegarder les listes de lecture dans l'ancien format"
- )
+ MENU_ENUM_LABEL_VALUE_NO_VIDEOS_AVAILABLE,
+ "Aucune vidéo disponible."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PLAYLIST_SHOW_INLINE_CORE_NAME,
- "Afficher les cœurs associés dans les listes de lecture"
- )
+ MENU_ENUM_LABEL_VALUE_NO_IMAGES_AVAILABLE,
+ "Aucune image disponible."
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_PLAYLIST_SHOW_INLINE_CORE_NAME,
- "Indique quand marquer les entrées de la liste de lecture avec leur cœur actuellement associé (le cas échéant). REMARQUE : ce réglage sera ignoré si les sous-étiquettes de la liste de lecture sont activées."
- )
+ MENU_ENUM_LABEL_VALUE_NO_FAVORITES_AVAILABLE,
+ "Aucun favori disponible."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PLAYLIST_INLINE_CORE_DISPLAY_HIST_FAV,
- "Historique et favoris"
- )
+ MSG_MISSING_ASSETS,
+ "AVERTISSEMENT : Assets manquants, utilisez la mise à jour en ligne si disponible"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PLAYLIST_INLINE_CORE_DISPLAY_ALWAYS,
- "Toujours"
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
+ "Restaurer l'aspect de la fenêtre"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PLAYLIST_INLINE_CORE_DISPLAY_NEVER,
- "Jamais"
- )
+ MENU_ENUM_LABEL_VALUE_HOLD_START,
+ "Maintenir Start (2 secondes)"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PLAYLIST_SORT_ALPHABETICAL,
- "Organiser les listes de lecture par ordre alphabétique"
- )
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_USE_OLD_FORMAT,
+ "Sauvegarder les listes de lecture dans l'ancien format"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_PLAYLIST_SORT_ALPHABETICAL,
- "Organiser les listes de lecture de contenu par ordre alphabétique. Notez que les listes de lecture 'Historique' des jeux, images, musiques et vidéos récemment utilisés sont exclues."
- )
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_SHOW_INLINE_CORE_NAME,
+ "Afficher les cœurs associés dans les listes de lecture"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_SOUNDS,
- "Sons du menu"
- )
+ MENU_ENUM_SUBLABEL_PLAYLIST_SHOW_INLINE_CORE_NAME,
+ "Indique quand marquer les entrées de la liste de lecture avec leur cœur actuellement associé (le cas échéant). REMARQUE : ce réglage sera ignoré si les sous-étiquettes de la liste de lecture sont activées."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_SOUND_OK,
- "Son de confirmation"
- )
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_INLINE_CORE_DISPLAY_HIST_FAV,
+ "Historique et favoris"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_SOUND_CANCEL,
- "Son d'annulation"
- )
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_INLINE_CORE_DISPLAY_ALWAYS,
+ "Toujours"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_SOUND_NOTICE,
- "Son des notifications"
- )
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_INLINE_CORE_DISPLAY_NEVER,
+ "Jamais"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_SOUND_BGM,
- "Musique de fond"
- )
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_ENTRY_REMOVE_ENABLE_HIST_FAV,
+ "Historique et favoris"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_DOWN_SELECT,
- "Bas + Select"
- )
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_ENTRY_REMOVE_ENABLE_ALL,
+ "Toutes les listes de lecture"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_DRIVER_FALLBACK,
- "Votre pilote graphique n'est pas compatible avec le pilote vidéo actuel de RetroArch, retour au pilote %s. Veuillez redémarrer RetroArch pour que les modifications prennent effet."
- )
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_ENTRY_REMOVE_ENABLE_NONE,
+ "Désactivé"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_COREAUDIO_SUPPORT,
- "Prise en charge de CoreAudio "
- )
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_SORT_ALPHABETICAL,
+ "Organiser les listes de lecture par ordre alphabétique"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_COREAUDIO3_SUPPORT,
- "Prise en charge de CoreAudio V3 "
- )
+ MENU_ENUM_SUBLABEL_PLAYLIST_SORT_ALPHABETICAL,
+ "Organiser les listes de lecture de contenu par ordre alphabétique. Notez que les listes de lecture 'Historique' des jeux, images, musiques et vidéos récemment utilisés sont exclues."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_MENU_WIDGETS_ENABLE,
- "Widgets du menu"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_SOUNDS,
+ "Sons du menu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONTENT_RUNTIME_LOG,
- "Enregistrer le journal du temps de jeu (par cœur)"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_SOUND_OK,
+ "Son de confirmation"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CONTENT_RUNTIME_LOG,
- "Garde la trace de la durée d'exécution de chaque élément de contenu, séparément par cœur."
- )
+ MENU_ENUM_LABEL_VALUE_MENU_SOUND_CANCEL,
+ "Son d'annulation"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_CONTENT_RUNTIME_LOG_AGGREGATE,
- "Enregistrer le journal du temps de jeu (cumulé)"
- )
+ MENU_ENUM_LABEL_VALUE_MENU_SOUND_NOTICE,
+ "Son des notifications"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_CONTENT_RUNTIME_LOG_AGGREGATE,
- "Garde la trace de la durée d'exécution de chaque élément de contenu, en tant que total cumulé sur tous les cœurs."
- )
+ MENU_ENUM_LABEL_VALUE_MENU_SOUND_BGM,
+ "Musique de fond"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_RUNTIME_LOG_DIRECTORY,
- "Journaux du temps de jeu "
- )
+ MENU_ENUM_LABEL_VALUE_DOWN_SELECT,
+ "Bas + Select"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_RUNTIME_LOG_DIRECTORY,
- "Les fichiers journaux du temps de jeu seront conservés dans ce dossier."
- )
+ MENU_ENUM_LABEL_VALUE_VIDEO_DRIVER_FALLBACK,
+ "Votre pilote graphique n'est pas compatible avec le pilote vidéo actuel de RetroArch, retour au pilote %s. Veuillez redémarrer RetroArch pour que les modifications prennent effet."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PLAYLIST_SHOW_SUBLABELS,
- "Afficher les sous-étiquettes dans les listes de lecture"
- )
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_COREAUDIO_SUPPORT,
+ "Prise en charge de CoreAudio "
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_PLAYLIST_SHOW_SUBLABELS,
- "Affiche des informations additionnelles pour chaque entrée dans les listes de lecture, telles que l'association au cœur actuelle et le temps de jeu (si disponible). A un impact variable sur les performances."
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_CORE,
- "Cœur :"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_RUNTIME,
- "Temps de jeu :"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_LAST_PLAYED,
- "Joué pour la dernière fois :"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_RUNTIME_TYPE,
- "Type du temps de jeu affiché dans les sous-étiquettes de listes de lecture"
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_PLAYLIST_SUBLABEL_RUNTIME_TYPE,
- "Sélectionner le type d'enregistrement de temps de jeu à afficher dans les sous-étiquettes des listes de lecture. (Notez que le journal du temps de jeu correspondant doit être activé via le menu d'options 'Sauvegarde')"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PLAYLIST_RUNTIME_PER_CORE,
- "Par cœur"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PLAYLIST_FUZZY_ARCHIVE_MATCH,
- "Correspondance approximative pour les archives"
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_PLAYLIST_FUZZY_ARCHIVE_MATCH,
- "Lors de la recherche de fichiers compressés dans les listes de lecture, faire correspondre le nom de l'archive uniquement et non [nom]+[contenu]. Activez cette option pour éviter les doublons dans l'historique lors du chargement d'archives."
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_PLAYLIST_RUNTIME_AGGREGATE,
- "Cumulé"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_HELP_SEND_DEBUG_INFO,
- "Envoyer des informations de diagnostic"
- )
-MSG_HASH(
- MSG_FAILED_TO_SAVE_DEBUG_INFO,
- "Échec d'enregistrement des informations de diagnostic."
- )
-MSG_HASH(
- MSG_FAILED_TO_SEND_DEBUG_INFO,
- "Échec d'envoi des informations de diagnostic au serveur."
- )
-MSG_HASH(
- MSG_SENDING_DEBUG_INFO,
- "Envoi des informations de diagnostic..."
- )
-MSG_HASH(
- MSG_SENT_DEBUG_INFO,
- "Les informations de diagnostic ont été envoyées au serveur avec succès. Votre numéro d'identification est %u."
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_HELP_SEND_DEBUG_INFO,
- "Envoyer les informations de diagnostic pour votre appareil et la configuration de RetroArch à nos serveurs pour analyse."
- )
-MSG_HASH(
- MSG_PRESS_TWO_MORE_TIMES_TO_SEND_DEBUG_INFO,
- "Appuyez deux fois de plus pour soumettre les informations de diagnostic à l'équipe de RetroArch."
- )
-MSG_HASH(
- MSG_PRESS_ONE_MORE_TIME_TO_SEND_DEBUG_INFO,
- "Appuyez une fois de plus pour soumettre les informations de diagnostic à l'équipe de RetroArch."
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIBRATE_ON_KEYPRESS,
- "Vibrer à chaque touche pressée"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_ENABLE_DEVICE_VIBRATION,
- "Activer la vibration du périphérique (pour les cœurs pris en charge)"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LOG_DIR,
- "Journaux des événements système "
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_LOG_DIR,
- "Les fichiers de journalisation des événements système seront conservés dans ce dossier."
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SHADERS_ENABLE,
- "Shaders vidéo"
- )
-MSG_HASH(
- MENU_ENUM_LABEL_VALUE_SCAN_WITHOUT_CORE_MATCH,
- "Analyser du contenu sans cœur correspondant"
- )
-MSG_HASH(
- MENU_ENUM_SUBLABEL_SCAN_WITHOUT_CORE_MATCH,
- "Si cette option est désactivée, le contenu n'est ajouté aux listes de lecture que s'il est pris en charge par un cœur installé. Cette option ajoutera toujours le contenu aux listes de lecture, et un cœur compatible pourra être installé plus tard."
- )
-MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_XMB_ANIMATION_HORIZONTAL_HIGHLIGHT,
- "Animation Horizontal Icon Highlight")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_XMB_ANIMATION_MOVE_UP_DOWN,
- "Animation Move Up/Down")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_XMB_ANIMATION_OPENING_MAIN_MENU,
- "Animation Main Menu Opens/Closes")
+ MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_COREAUDIO3_SUPPORT,
+ "Prise en charge de CoreAudio V3 "
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_CONTENT_RUNTIME_LOG,
+ "Enregistrer le journal du temps de jeu (par cœur)"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CONTENT_RUNTIME_LOG,
+ "Garde la trace de la durée d'exécution de chaque élément de contenu, séparément par cœur."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_CONTENT_RUNTIME_LOG_AGGREGATE,
+ "Enregistrer le journal du temps de jeu (cumulé)"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_CONTENT_RUNTIME_LOG_AGGREGATE,
+ "Garde la trace de la durée d'exécution de chaque élément de contenu, en tant que total cumulé sur tous les cœurs."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_RUNTIME_LOG_DIRECTORY,
+ "Journaux du temps de jeu "
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_RUNTIME_LOG_DIRECTORY,
+ "Les fichiers journaux du temps de jeu seront conservés dans ce dossier."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_SHOW_SUBLABELS,
+ "Afficher les sous-étiquettes dans les listes de lecture"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_PLAYLIST_SHOW_SUBLABELS,
+ "Affiche des informations additionnelles pour chaque entrée dans les listes de lecture, telles que l'association au cœur actuelle et le temps de jeu (si disponible). A un impact variable sur les performances."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_CORE,
+ "Cœur :"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_RUNTIME,
+ "Temps de jeu :"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_LAST_PLAYED,
+ "Joué pour la dernière fois :"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_RUNTIME_TYPE,
+ "Type du temps de jeu affiché dans les sous-étiquettes de listes de lecture"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_PLAYLIST_SUBLABEL_RUNTIME_TYPE,
+ "Sélectionner le type d'enregistrement du temps de jeu à afficher dans les sous-étiquettes des listes de lecture. (Notez que le journal du temps de jeu correspondant doit être activé via le menu d'options 'Sauvegarde')"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_RUNTIME_PER_CORE,
+ "Par cœur"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_RUNTIME_AGGREGATE,
+ "Cumulé"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_LAST_PLAYED_STYLE,
+ "Format du temps de jeu pour l'étiquette dans la liste de lecture 'joué pour la dernière fois'"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_PLAYLIST_SUBLABEL_LAST_PLAYED_STYLE,
+ "Sélectionne le style de mise en forme de la date/l'heure utilisé pour l'affichage des informations d'horodatage dans l'enregistrement du journal de temps de jeu 'joué pour la dernière fois'. REMARQUE : Les options '(AM/PM)' auront un faible impact sur les performances pour certaines plateformes."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_LAST_PLAYED_STYLE_YMD_HMS,
+ "AAAA/MM/JJ - HH:MM:SS"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_LAST_PLAYED_STYLE_YMD_HM,
+ "AAAA/MM/JJ - HH:MM"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_LAST_PLAYED_STYLE_MDYYYY,
+ "MM/JJ/AAAA - HH:MM"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_LAST_PLAYED_STYLE_DM_HM,
+ "JJ/MM - HH:MM"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_LAST_PLAYED_STYLE_MD_HM,
+ "MM/JJ - HH:MM"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_LAST_PLAYED_STYLE_YMD_HMS_AM_PM,
+ "AAAA/MM/JJ - HH:MM:SS (AM/PM)"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_LAST_PLAYED_STYLE_YMD_HM_AM_PM,
+ "AAAA/MM/JJ - HH:MM (AM/PM)"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_LAST_PLAYED_STYLE_MDYYYY_AM_PM,
+ "MM/JJ/AAAA - HH:MM (AM/PM)"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_LAST_PLAYED_STYLE_DM_HM_AM_PM,
+ "JJ/MM - HH:MM (AM/PM)"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_LAST_PLAYED_STYLE_MD_HM_AM_PM,
+ "MM/JJ - HH:MM (AM/PM)"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_PLAYLIST_FUZZY_ARCHIVE_MATCH,
+ "Correspondance approximative pour les archives"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_PLAYLIST_FUZZY_ARCHIVE_MATCH,
+ "Lors de la recherche de fichiers compressés dans les listes de lecture, faire correspondre le nom de l'archive uniquement et non [nom]+[contenu]. Activez cette option pour éviter les doublons dans l'historique lors du chargement d'archives."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_HELP_SEND_DEBUG_INFO,
+ "Envoyer des informations de diagnostic"
+ )
+MSG_HASH(
+ MSG_FAILED_TO_SAVE_DEBUG_INFO,
+ "Échec d'enregistrement des informations de diagnostic."
+ )
+MSG_HASH(
+ MSG_FAILED_TO_SEND_DEBUG_INFO,
+ "Échec d'envoi des informations de diagnostic au serveur."
+ )
+MSG_HASH(
+ MSG_SENDING_DEBUG_INFO,
+ "Envoi des informations de diagnostic..."
+ )
+MSG_HASH(
+ MSG_SENT_DEBUG_INFO,
+ "Les informations de diagnostic ont été envoyées au serveur avec succès. Votre numéro d'identification est %u."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_HELP_SEND_DEBUG_INFO,
+ "Envoyer les informations de diagnostic pour votre appareil et la configuration de RetroArch à nos serveurs pour analyse."
+ )
+MSG_HASH(
+ MSG_PRESS_TWO_MORE_TIMES_TO_SEND_DEBUG_INFO,
+ "Appuyez deux fois de plus pour soumettre les informations de diagnostic à l'équipe de RetroArch."
+ )
+MSG_HASH(
+ MSG_PRESS_ONE_MORE_TIME_TO_SEND_DEBUG_INFO,
+ "Appuyez une fois de plus pour soumettre les informations de diagnostic à l'équipe de RetroArch."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_VIBRATE_ON_KEYPRESS,
+ "Vibrer à chaque touche pressée"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_ENABLE_DEVICE_VIBRATION,
+ "Activer la vibration du périphérique (pour les cœurs pris en charge)"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_LOG_DIR,
+ "Journaux des événements système "
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_LOG_DIR,
+ "Les fichiers de journalisation des événements système seront conservés dans ce dossier."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MENU_WIDGETS_ENABLE,
+ "Widgets du menu"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADERS_ENABLE,
+ "Shaders vidéo"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_SCAN_WITHOUT_CORE_MATCH,
+ "Analyser du contenu sans cœur correspondant"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SCAN_WITHOUT_CORE_MATCH,
+ "Si cette option est désactivée, le contenu n'est ajouté aux listes de lecture que s'il est pris en charge par un cœur installé. Cette option ajoutera toujours le contenu aux listes de lecture, et un cœur compatible pourra être installé plus tard."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MENU_XMB_ANIMATION_HORIZONTAL_HIGHLIGHT,
+ "Surlignage horizontal de l'icone animé"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MENU_XMB_ANIMATION_MOVE_UP_DOWN,
+ "Déplacement vers le haut/bas animé"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MENU_XMB_ANIMATION_OPENING_MAIN_MENU,
+ "Ouverture/fermeture du menu principal animé"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_VIDEO_GPU_INDEX,
+ "Numéro du processeur graphique"
+ )
+MSG_HASH(
+ MSG_DUMPING_DISC,
+ "Importation du disque..."
+ )
+MSG_HASH(
+ MSG_DRIVE_NUMBER,
+ "Lecteur %d"
+ )
+MSG_HASH(
+ MSG_LOAD_CORE_FIRST,
+ "Veuillez d'abord charger un cœur."
+ )
+MSG_HASH(
+ MSG_DISC_DUMP_FAILED_TO_READ_FROM_DRIVE,
+ "Lecture depuis le lecteur échouée. Importation annulée."
+ )
+MSG_HASH(
+ MSG_DISC_DUMP_FAILED_TO_WRITE_TO_DISK,
+ "Écriture vers le disque échouée. Importation annulée."
+ )
+MSG_HASH(
+ MSG_NO_DISC_INSERTED,
+ "Aucun disque n'est inséré dans le lecteur."
+ )
MSG_HASH(
MENU_ENUM_LABEL_VALUE_DISC_INFORMATION,
- "Disc Information"
+ "Informations sur le disque"
)
MSG_HASH(
MENU_ENUM_SUBLABEL_DISC_INFORMATION,
- "View information about inserted media discs."
+ "Voir des informations sur les disques média insérés."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_QT_RESET,
+ "Réinitialiser"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_QT_RESET_ALL,
+ "Tout réinitialiser"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_FRONTEND_LOG_LEVEL,
- "Frontend Logging Level"
+ "Niveau de journalisation du frontend"
)
MSG_HASH(
MENU_ENUM_SUBLABEL_FRONTEND_LOG_LEVEL,
- "Sets log level for the frontend. If a log level issued by the frontend is below this value, it is ignored."
+ "Ajuste le niveau de journalisation pour le frontend. Si un niveau de journalisation émis par le frontend est inférieur à cette valeur, il est alors ignoré."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_FPS_UPDATE_INTERVAL,
+ "Intervalle de mise à jour des images/s (en images)"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_FPS_UPDATE_INTERVAL,
+ "L'affichage des des images/s sera mis à jour à l'intervalle défini (en images)."
)
-MSG_HASH(MENU_ENUM_LABEL_VALUE_FPS_UPDATE_INTERVAL,
- "Framerate Update Interval (in frames)")
-MSG_HASH(MENU_ENUM_SUBLABEL_FPS_UPDATE_INTERVAL,
- "Framerate display will be updated at the set interval (in frames).")
MSG_HASH(
MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_RESTART_CONTENT,
- "Show Restart Content"
+ "Afficher 'Redémarrer le contenu'"
)
MSG_HASH(
MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_RESTART_CONTENT,
- "Show/hide the 'Restart Content' option."
+ "Afficher/masquer l'option 'Redémarrer le contenu'."
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_CLOSE_CONTENT,
- "Show Close Content"
+ "Afficher 'Fermer le contenu'"
)
MSG_HASH(
MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_CLOSE_CONTENT,
- "Show/hide the 'Close Content' option."
+ "Afficher/masquer l'option 'Fermer le contenu'."
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_RESUME_CONTENT,
- "Show Resume Content"
+ "Afficher 'Reprendre le contenu'"
)
MSG_HASH(
MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_RESUME_CONTENT,
- "Show/hide the 'Resume Content' option."
+ "Afficher/masquer l'option 'Reprendre le contenu'."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_SETTINGS_VIEWS_SETTINGS,
+ "Réglages"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SETTINGS_VIEWS_SETTINGS,
+ "Afficher ou masquer des éléments dans l'écran des réglages."
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_INPUT,
- "Show Input"
+ "Afficher 'Entrées'"
)
MSG_HASH(
MENU_ENUM_SUBLABEL_SETTINGS_SHOW_INPUT,
- "Show or hide 'Input Settings' on the Settings screen."
+ "Afficher ou masquer 'Entrées' dans l'écran des réglages."
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_AI_SERVICE_SETTINGS,
- "AI Service"
+ "Service IA"
)
MSG_HASH(
MENU_ENUM_SUBLABEL_AI_SERVICE_SETTINGS,
- "Change settings for the AI Service (Translation/TTS/Misc)."
+ "Changer les réglages pour le service IA (Traduction/TTS/autres)."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_AI_SERVICE_MODE,
+ "Sortie du service IA"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_AI_SERVICE_URL,
+ "URL du service IA"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_AI_SERVICE_ENABLE,
+ "Service IA activé"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AI_SERVICE_MODE,
+ "Afficher la traduction en tant que surimpression de texte (mode image), ou lue en tant que Text-To-Speech (mode parole)"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AI_SERVICE_URL,
+ "Une URL http:// pointant vers le service de traduction à utiliser."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AI_SERVICE_ENABLE,
+ "Active le lancement du service IA lorsque la touche de raccourci Service AI est pressée."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_AI_SERVICE_TARGET_LANG,
+ "Langue cible"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AI_SERVICE_TARGET_LANG,
+ "Langue vers laquelle le service traduira. Si réglé sur 'Peu importe', l'anglais sera choisi par défaut."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_AI_SERVICE_SOURCE_LANG,
+ "Langue source"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AI_SERVICE_SOURCE_LANG,
+ "Langue à partir de laquelle le service traduira. Si réglé sur 'Peu importe', il tentera de détecter automatiquement la langue. Définir une langue spécifique rendra la traduction plus précise."
)
-MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_MODE,
- "AI Service Output")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_URL,
- "AI Service URL")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_ENABLE,
- "AI Service Enabled")
-MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE,
- "Pauses gameplay during translation (Image mode), or continues to run (Speech mode)")
-MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_URL,
- "A http:// url pointing to the translation service to use.")
-MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_ENABLE,
- "Enable AI Service to run when the AI Service hotkey is pressed.")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_TARGET_LANG,
- "Target Language")
-MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_TARGET_LANG,
- "The language the service will translate to. If set to 'Don't Care', it will default to English.")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_SOURCE_LANG,
- "Source Language")
-MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_SOURCE_LANG,
- "The language the service will translate from. If set to 'Don't Care', it will attempt to auto-detect the language. Setting it to a specific language will make the translation more accurate.")
MSG_HASH(
MENU_ENUM_LABEL_VALUE_LANG_CZECH,
- "Czech"
+ "Tchèque"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_LANG_DANISH,
- "Danish"
+ "Danois"
)
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_SWEDISH,
- "Swedish"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_SWEDISH,
+ "Suédois"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_CROATIAN,
- "Croatian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_CROATIAN,
+ "Croate"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_CATALAN,
- "Catalan"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_CATALAN,
+ "Catalan"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_BULGARIAN,
- "Bulgarian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_BULGARIAN,
+ "Bulgare"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_BENGALI,
- "Bengali"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_BENGALI,
+ "Bengali"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_BASQUE,
- "Basque"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_BASQUE,
+ "Basque"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_AZERBAIJANI,
- "Azerbaijani"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_AZERBAIJANI,
+ "Azerbaïdjanais"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_ALBANIAN,
- "Albanian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_ALBANIAN,
+ "Albanais"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_AFRIKAANS,
- "Afrikaans"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_AFRIKAANS,
+ "Afrikaans"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_ESTONIAN,
- "Estonian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_ESTONIAN,
+ "Estonien"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_FILIPINO,
- "Filipino"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_FILIPINO,
+ "Philippin"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_FINNISH,
- "Finnish"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_FINNISH,
+ "Finlandais"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_GALICIAN,
- "Galician"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_GALICIAN,
+ "Galicien"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_GEORGIAN,
- "Georgian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_GEORGIAN,
+ "Géorgien"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_GUJARATI,
- "Gujarati"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_GUJARATI,
+ "Gujarati"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_HAITIAN_CREOLE,
- "Haitian Creole"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_HAITIAN_CREOLE,
+ "Créole haïtien"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_HEBREW,
- "Hebrew"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_HEBREW,
+ "Hébreu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_HINDI,
- "Hindi"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_HINDI,
+ "Hindi"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_HUNGARIAN,
- "Hungarian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_HUNGARIAN,
+ "Hongrois"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_ICELANDIC,
- "Icelandic"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_ICELANDIC,
+ "Islandais"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_INDONESIAN,
- "Indonesian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_INDONESIAN,
+ "Indonésien"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_IRISH,
- "Irish"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_IRISH,
+ "Irlandais"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_KANNADA,
- "Kannada"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_KANNADA,
+ "Kannada"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_LATIN,
- "Latin"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_LATIN,
+ "Latin"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_LATVIAN,
- "Latvian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_LATVIAN,
+ "Letton"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_LITHUANIAN,
- "Lithuanian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_LITHUANIAN,
+ "Lituanien"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_MACEDONIAN,
- "Macedonian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_MACEDONIAN,
+ "Macédonien"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_MALAY,
- "Malay"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_MALAY,
+ "Malais"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_MALTESE,
- "Maltese"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_MALTESE,
+ "Maltais"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_NORWEGIAN,
- "Norwegian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_NORWEGIAN,
+ "Norvégien"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_PERSIAN,
- "Persian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_PERSIAN,
+ "Persan"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_ROMANIAN,
- "Romanian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_ROMANIAN,
+ "Roumain"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_SERBIAN,
- "Serbian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_SERBIAN,
+ "Serbe"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_SLOVAK,
- "Slovak"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_SLOVAK,
+ "Slovaque"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_SLOVENIAN,
- "Slovenian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_SLOVENIAN,
+ "Slovène"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_SWAHILI,
- "Swahili"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_SWAHILI,
+ "Swahili"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_TAMIL,
- "Tamil"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_TAMIL,
+ "Tamil"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_TELUGU,
- "Telugu"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_TELUGU,
+ "Telugu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_THAI,
- "Thai"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_THAI,
+ "Thaïlandais"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_UKRAINIAN,
- "Ukrainian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_UKRAINIAN,
+ "Ukrainien"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_URDU,
- "Urdu"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_URDU,
+ "Ourdou"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_WELSH,
- "Welsh"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_WELSH,
+ "Gallois"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_YIDDISH,
- "Yiddish"
- )
-MSG_HASH(MENU_ENUM_SUBLABEL_LOAD_DISC,
- "Load a physical media disc. You should first select the core (Load Core) you intend to use with the disc.")
-MSG_HASH(MENU_ENUM_SUBLABEL_DUMP_DISC,
- "Dump the physical media disc to internal storage. It will be saved as an image file.")
+ MENU_ENUM_LABEL_VALUE_LANG_YIDDISH,
+ "Yiddish"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AI_SERVICE_IMAGE_MODE,
- "Image Mode"
- )
+ MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_DRIVERS,
+ "Afficher 'Pilotes'"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE,
- "Speech Mode"
- )
+ MENU_ENUM_SUBLABEL_SETTINGS_SHOW_DRIVERS,
+ "Afficher ou masquer 'Pilotes' dans l'écran des réglages."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE,
- "Remove")
+ MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_VIDEO,
+ "Afficher 'Vidéo'"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE,
- "Remove shader presets of a specific type.")
+ MENU_ENUM_SUBLABEL_SETTINGS_SHOW_VIDEO,
+ "Afficher ou masquer 'Vidéo' dans l'écran des réglages."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL,
- "Remove Global Preset")
+ MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_AUDIO,
+ "Afficher 'Audio'"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL,
- "Remove the Global Preset, used by all content and all cores.")
+ MENU_ENUM_SUBLABEL_SETTINGS_SHOW_AUDIO,
+ "Afficher ou masquer 'Audio' dans l'écran des réglages."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE,
- "Remove Core Preset")
+ MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_LATENCY,
+ "Afficher 'Latence'"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE,
- "Remove the Core Preset, used by all content ran with the currently loaded core.")
+ MENU_ENUM_SUBLABEL_SETTINGS_SHOW_LATENCY,
+ "Afficher ou masquer 'Latence' dans l'écran des réglages."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT,
- "Remove Content Directory Preset")
+ MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_CORE,
+ "Afficher 'Cœurs'"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT,
- "Remove the Content Directory Preset, used by all content inside the current working directory.")
+ MENU_ENUM_SUBLABEL_SETTINGS_SHOW_CORE,
+ "Afficher ou masquer 'Cœurs' dans l'écran des réglages."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME,
- "Remove Game Preset")
+ MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_CONFIGURATION,
+ "Afficher 'Configuration'"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME,
- "Remove the Game Preset, used only for the specific game in question.")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_FRAME_TIME_COUNTER_SETTINGS,
- "Frame Time Counter")
-MSG_HASH(MENU_ENUM_SUBLABEL_FRAME_TIME_COUNTER_SETTINGS,
- "Adjust settings influencing the frame time counter (only active when threaded video is disabled).")
-MSG_HASH(MENU_ENUM_SUBLABEL_MENU_WIDGETS_ENABLE,
- "Use modern decorated animations, notifications, indicators and controls instead of the old text only system.")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_PLAYLIST,
- "Supprimer la liste de lecture")
+ MENU_ENUM_SUBLABEL_SETTINGS_SHOW_CONFIGURATION,
+ "Afficher ou masquer 'Configuration' dans l'écran des réglages."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_SAVING,
+ "Afficher 'Sauvegarde'"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SETTINGS_SHOW_SAVING,
+ "Afficher ou masquer 'Sauvegarde' dans l'écran des réglages."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_LOGGING,
+ "Afficher 'Journalisation'"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SETTINGS_SHOW_LOGGING,
+ "Afficher ou masquer 'Journalisation' dans l'écran des réglages."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_FRAME_THROTTLE,
+ "Afficher 'Limiteur d'images/s'"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SETTINGS_SHOW_FRAME_THROTTLE,
+ "Afficher ou masquer 'Limiteur d'images/s' dans l'écran des réglages."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_RECORDING,
+ "Afficher 'Enregistrement'"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SETTINGS_SHOW_RECORDING,
+ "Afficher ou masquer 'Enregistrement' dans l'écran des réglages."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_ONSCREEN_DISPLAY,
+ "Afficher 'Affichage à l'écran'"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SETTINGS_SHOW_ONSCREEN_DISPLAY,
+ "Afficher ou masquer 'Affichage à l'écran' dans l'écran des réglages."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_USER_INTERFACE,
+ "Afficher 'Interface utilisateur'"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SETTINGS_SHOW_USER_INTERFACE,
+ "Afficher ou masquer 'Interface utilisateur' dans l'écran des réglages."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_AI_SERVICE,
+ "Afficher 'Service AI'"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SETTINGS_SHOW_AI_SERVICE,
+ "Afficher ou masquer 'Service AI' dans l'écran des réglages."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_POWER_MANAGEMENT,
+ "Afficher 'Gestion de l'alimentation'"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SETTINGS_SHOW_POWER_MANAGEMENT,
+ "Afficher ou masquer 'Gestion de l'alimentation' dans l'écran des réglages."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_ACHIEVEMENTS,
+ "Afficher 'Succès'"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SETTINGS_SHOW_ACHIEVEMENTS,
+ "Afficher ou masquer 'Succès' dans l'écran des réglages."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_NETWORK,
+ "Afficher 'Réseau'"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SETTINGS_SHOW_NETWORK,
+ "Afficher ou masquer 'Réseau' dans l'écran des réglages."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_PLAYLISTS,
+ "Afficher 'Listes de lecture'"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SETTINGS_SHOW_PLAYLISTS,
+ "Afficher ou masquer 'Listes de lecture' dans l'écran des réglages."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_USER,
+ "Afficher 'Utilisateur'"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SETTINGS_SHOW_USER,
+ "Afficher ou masquer 'Utilisateur' dans l'écran des réglages."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_DIRECTORY,
+ "Afficher 'Dossiers'"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SETTINGS_SHOW_DIRECTORY,
+ "Afficher ou masquer 'Dossiers' dans l'écran des réglages."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_LOAD_DISC,
+ "Charger un disque média physique. Vous devriez d'abord sélectionner le cœur (Charger un cœur) que vous souhaitez utiliser avec le disque."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_DUMP_DISC,
+ "Importer le disque média physique vers le stockage interne. Il sera sauvegardé vers un fichier d'image disque."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_AI_SERVICE_IMAGE_MODE,
+ "Mode image"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE,
+ "Mode parole"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE,
+ "Supprimer"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE,
+ "Supprimer les préréglages de shaders d'un type specifique."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL,
+ "Supprimer les préréglages globaux"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL,
+ "Supprimer les préréglages globaux, utilisés par tout le contenu et tous les cœurs."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE,
+ "Supprimer les préréglages du cœur"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE,
+ "Supprimer les préréglages du cœur, utilisés par tout le contenu déjà lancé par le cœur actuellement chargé."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT,
+ "Supprimer les préréglages du dossier de contenu"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT,
+ "Supprimer les préréglages du dossier de contenu, utilisés par tout le contenu situé dans le dossier actuel."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME,
+ "Supprimer les préréglages du jeu"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME,
+ "Supprimer the Game Preset, used only for the specific game in question."
+ )
+MSG_HASH(
+ MSG_SHADER_PRESET_REMOVED_SUCCESSFULLY,
+ "Préréglages de shaders supprimés avec succès."
+ )
+MSG_HASH(
+ MSG_ERROR_REMOVING_SHADER_PRESET,
+ "Erreur lors de la suppression des préréglages de shaders."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_FRAME_TIME_COUNTER_SETTINGS,
+ "Compteur de temps par images"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_FRAME_TIME_COUNTER_SETTINGS,
+ "Régler les paramètres qui influent sur le compteur de temps par image (actif uniquement lorsque la vidéo sur plusieurs fils d'exécution est désactivée)."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_FRAME_TIME_COUNTER_RESET_AFTER_FASTFORWARDING,
+ "Réinitialiser après l'avance rapide"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_FRAME_TIME_COUNTER_RESET_AFTER_FASTFORWARDING,
+ "Réinitialise le compteur de temps par images après l'avance rapide."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_FRAME_TIME_COUNTER_RESET_AFTER_LOAD_STATE,
+ "Réinitialiser après le chargement d'une sauvegarde instantanée"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_FRAME_TIME_COUNTER_RESET_AFTER_LOAD_STATE,
+ "Réinitialise le compteur de temps par images après le chargement d'une sauvegarde instantanée."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_FRAME_TIME_COUNTER_RESET_AFTER_SAVE_STATE,
+ "Réinitialiser après une sauvegarde instantanée"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_FRAME_TIME_COUNTER_RESET_AFTER_SAVE_STATE,
+ "Réinitialise le compteur de temps par images après une sauvegarde instantanée."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_MENU_WIDGETS_ENABLE,
+ "Utilisez des animations, des notifications, des indicateurs et des commandes modernes, au lieu de l'ancien système utilisant uniquement du texte."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_MENU_XMB_ANIMATION_HORIZONTAL_HIGHLIGHT,
+ "L'animation qui se lance lors du passage entre les onglets."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_MENU_XMB_ANIMATION_MOVE_UP_DOWN,
+ "L'animation qui se lance lors du déplacement vers le haut ou le bas."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_MENU_XMB_ANIMATION_OPENING_MAIN_MENU,
+ "L'animation qui se lance lors de l'ouverture d'un sous-menu."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DELETE_PLAYLIST,
+ "Supprimer la liste de lecture"
+ )
#ifdef HAVE_LAKKA
-MSG_HASH(MENU_ENUM_LABEL_VALUE_LOCALAP_ENABLE,
- "Wi-Fi Access Point")
-MSG_HASH(MENU_ENUM_SUBLABEL_LOCALAP_ENABLE,
- "Enable or disable Wi-Fi Access Point.")
-MSG_HASH(MSG_LOCALAP_SWITCHING_OFF,
- "Switching off Wi-Fi Access Point.")
-MSG_HASH(MSG_WIFI_DISCONNECT_FROM,
- "Disconnecting from Wi-Fi '%s'")
-MSG_HASH(MSG_LOCALAP_ALREADY_RUNNING,
- "Wi-Fi Access Point is already started")
-MSG_HASH(MSG_LOCALAP_NOT_RUNNING,
- "Wi-Fi Access Point is not running")
-MSG_HASH(MSG_LOCALAP_STARTING,
- "Starting Wi-Fi Access Point with SSID=%s and Passkey=%s")
-MSG_HASH(MSG_LOCALAP_ERROR_CONFIG_CREATE,
- "Could not create Wi-Fi Access Point configuration file.")
-MSG_HASH(MSG_LOCALAP_ERROR_CONFIG_PARSE,
- "Wrong configuration file - could not find APNAME or PASSWORD in %s")
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_LOCALAP_ENABLE,
+ "Point d'accès Wi-Fi"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_LOCALAP_ENABLE,
+ "Activer ou désactiver le point d'accès Wi-Fi."
+ )
+MSG_HASH(
+ MSG_LOCALAP_SWITCHING_OFF,
+ "Désactivation du point d'accès Wi-Fi."
+ )
+MSG_HASH(
+ MSG_WIFI_DISCONNECT_FROM,
+ "Déconnexion du Wi-Fi '%s'"
+ )
+MSG_HASH(
+ MSG_LOCALAP_ALREADY_RUNNING,
+ "Le point d'accès Wi-Fi est déja actif"
+ )
+MSG_HASH(
+ MSG_LOCALAP_NOT_RUNNING,
+ "Le point d'accès Wi-Fi n'est pas actif"
+ )
+MSG_HASH(
+ MSG_LOCALAP_STARTING,
+ "Démarrage du point d'accès Wi-Fi avec le SSID=%s et la Clé=%s"
+ )
+MSG_HASH(
+ MSG_LOCALAP_ERROR_CONFIG_CREATE,
+ "Impossible de créer un fichier de configuration pour le point d'accès Wi-Fi."
+ )
+MSG_HASH(
+ MSG_LOCALAP_ERROR_CONFIG_PARSE,
+ "Mauvais fichier de configuration - impossible de trouver l'APNAME ou le PASSWORD dans %s"
+ )
#endif
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DRIVER_SWITCH_ENABLE,
+ "Autoriser les cœurs à changer le pilote vidéo"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_DRIVER_SWITCH_ENABLE,
+ "Autorise les cœurs à forcer le changement vers un pilote vidéo différent de celui qui est chargé actuellement."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_AI_SERVICE_PAUSE,
+ "Mettre en pause pour le Service IA"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AI_SERVICE_PAUSE,
+ "Met le cœur en pause lorsque l'écran est traduit."
+ )
diff --git a/intl/msg_hash_it.h b/intl/msg_hash_it.h
index 3ef84ef3b0..d5527eb432 100644
--- a/intl/msg_hash_it.h
+++ b/intl/msg_hash_it.h
@@ -3770,7 +3770,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_URL,
MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_ENABLE,
"AI Service Enabled")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE,
- "Pauses gameplay during translation (Image mode), or continues to run (Speech mode)")
+ "Show translation as a text overlay (Image mode), or play as Text-To-Speech (Speech mode)")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_URL,
"A http:// url pointing to the translation service to use.")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_ENABLE,
diff --git a/intl/msg_hash_ja.h b/intl/msg_hash_ja.h
index 30e5613b79..347bad373c 100644
--- a/intl/msg_hash_ja.h
+++ b/intl/msg_hash_ja.h
@@ -9317,7 +9317,7 @@ MSG_HASH(
"AIサービス有効"
)
MSG_HASH(
- MENU_ENUM_SUBLABEL_AI_SERVICE_MODE,
+ MENU_ENUM_SUBLABEL_AI_SERVICE_MODE, /* TODO/FIXME - update this - see US original */
"'Image mode'は翻訳中にゲームを一時停止, 'Speech mode'は実行継続します。"
)
MSG_HASH(
diff --git a/intl/msg_hash_ko.h b/intl/msg_hash_ko.h
index 0268586ce9..d57c4ba806 100644
--- a/intl/msg_hash_ko.h
+++ b/intl/msg_hash_ko.h
@@ -9182,7 +9182,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_URL,
"AI 서비스 URL")
MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_ENABLE,
"AI 서비스 사용")
-MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE,
+MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE, /* TODO/FIXME - update this - see US original */
"번역하는 동안 게임을 일시정지(이미지모드) 하거나 계속해서 실행(음성모드)합니다")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_URL,
"번역 서비스에서 사용할 http:// 주소입니다.")
diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h
index 89cd6ce225..9c0e2c060c 100644
--- a/intl/msg_hash_lbl.h
+++ b/intl/msg_hash_lbl.h
@@ -727,6 +727,8 @@ MSG_HASH(MENU_ENUM_LABEL_OZONE_SCROLL_CONTENT_METADATA,
"ozone_scroll_content_metadata")
MSG_HASH(MENU_ENUM_LABEL_MATERIALUI_MENU_COLOR_THEME,
"materialui_menu_color_theme")
+MSG_HASH(MENU_ENUM_LABEL_MATERIALUI_MENU_TRANSITION_ANIMATION,
+ "materialui_menu_transition_animation")
MSG_HASH(MENU_ENUM_LABEL_MATERIALUI_MENU_FOOTER_OPACITY,
"materialui_menu_footer_opacity")
MSG_HASH(MENU_ENUM_LABEL_MATERIALUI_MENU_HEADER_OPACITY,
@@ -1663,6 +1665,10 @@ MSG_HASH(MENU_ENUM_LABEL_GOTO_VIDEO,
"goto_video")
MSG_HASH(MENU_ENUM_LABEL_MATERIALUI_ICONS_ENABLE,
"materialui_icons_enable")
+MSG_HASH(MENU_ENUM_LABEL_MATERIALUI_OPTIMIZE_LANDSCAPE_LAYOUT,
+ "materialui_optimize_landscape_layout")
+MSG_HASH(MENU_ENUM_LABEL_MATERIALUI_AUTO_ROTATE_NAV_BAR,
+ "materialui_auto_rotate_nav_bar")
MSG_HASH(MENU_ENUM_LABEL_RENAME_ENTRY,
"rename_entry")
MSG_HASH(MENU_ENUM_LABEL_MENU_SHOW_LOAD_CORE,
@@ -2093,3 +2099,7 @@ MSG_HASH(MENU_ENUM_LABEL_DELETE_PLAYLIST,
MSG_HASH(MENU_ENUM_LABEL_LOCALAP_ENABLE,
"localap_enable")
#endif
+MSG_HASH(MENU_ENUM_LABEL_DRIVER_SWITCH_ENABLE,
+ "driver_switch_enable")
+MSG_HASH(MENU_ENUM_LABEL_AI_SERVICE_PAUSE,
+ "ai_service_pause")
diff --git a/intl/msg_hash_nl.h b/intl/msg_hash_nl.h
index c7d02d4fe6..92fdf56ffa 100644
--- a/intl/msg_hash_nl.h
+++ b/intl/msg_hash_nl.h
@@ -3543,7 +3543,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_URL,
MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_ENABLE,
"AI Service Ingeschakeld")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE,
- "Pauses gameplay during translation (Image mode), or continues to run (Speech mode)")
+ "Show translation as a text overlay (Image mode), or play as Text-To-Speech (Speech mode)")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_URL,
"A http:// url pointing to the translation service to use.")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_ENABLE,
diff --git a/intl/msg_hash_pl.h b/intl/msg_hash_pl.h
index 14b6339adf..1b67fb4040 100644
--- a/intl/msg_hash_pl.h
+++ b/intl/msg_hash_pl.h
@@ -1022,9 +1022,9 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_HISTORY,
MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST,
"Załaduj zawartość")
MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_DISC,
- "Load Disc")
+ "Załaduj dysk")
MSG_HASH(MENU_ENUM_LABEL_VALUE_DUMP_DISC,
- "Dump Disc")
+ "Zrzut dysku")
MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_STATE,
"Wczytaj zapis")
MSG_HASH(MENU_ENUM_LABEL_VALUE_LOCATION_ALLOW,
@@ -1064,7 +1064,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_DRIVER,
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_ENUM_THROTTLE_FRAMERATE,
"Menu obrotowe przepustnicy częstotliwości wyświetlania klatek")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_FILE_BROWSER_SETTINGS,
- "File Browser")
+ "Przeglądarka plików")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_LINEAR_FILTER,
"Menu filtra liniowego")
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_HORIZONTAL_ANIMATION,
@@ -1261,39 +1261,39 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_SETTINGS,
"Listy odtwarzania")
MSG_HASH(
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
- "Label Display Mode"
+ "Tryb wyświetlania etykiet"
)
MSG_HASH(
MENU_ENUM_SUBLABEL_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE,
- "Change how the content labels are displayed in this playlist."
+ "Zmień sposób wyświetlania etykiet treści na tej liście odtwarzania."
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_DEFAULT,
- "Show full labels"
+ "Pokaż pełne etykiety"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS,
- "Remove () content"
+ "Usuń () treść"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_BRACKETS,
- "Remove [] content"
+ "Usuń [] treść"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_REMOVE_PARENS_AND_BRACKETS,
- "Remove () and []"
+ "Usuń () i []"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION,
- "Keep region"
+ "Zachowaj region"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_DISC_INDEX,
- "Keep disc index"
+ "Zachowaj indeks płyty"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_PLAYLIST_MANAGER_LABEL_DISPLAY_MODE_KEEP_REGION_AND_DISC_INDEX,
- "Keep region and disc index"
+ "Zachowaj indeks regionu i dysku"
)
MSG_HASH(MENU_ENUM_LABEL_VALUE_POINTER_ENABLE,
"Obsługa dotyku")
@@ -4325,7 +4325,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_URL,
"Adres URL usługi AI")
MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_ENABLE,
"Usługa AI włączona")
-MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE,
+MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE, /* TODO/FIXME - update this - see US original */
"Wstrzymuje grę podczas tłumaczenia (tryb obrazu) lub kontynuuje działanie (tryb mowy)")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_URL,
"Adres URL http: // wskazujący na usługę tłumaczeniową do użycia.")
@@ -4635,21 +4635,21 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_PLAYLIST,
)
#ifdef HAVE_LAKKA
MSG_HASH(MENU_ENUM_LABEL_VALUE_LOCALAP_ENABLE,
- "Wi-Fi Access Point")
+ "Punkt dostępu Wi-Fi")
MSG_HASH(MENU_ENUM_SUBLABEL_LOCALAP_ENABLE,
- "Enable or disable Wi-Fi Access Point.")
+ "Włącz lub wyłącz punkt dostępu Wi-Fi.")
MSG_HASH(MSG_LOCALAP_SWITCHING_OFF,
- "Switching off Wi-Fi Access Point.")
+ "Wyłączanie punktu dostępu Wi-Fi.")
MSG_HASH(MSG_WIFI_DISCONNECT_FROM,
- "Disconnecting from Wi-Fi '%s'")
+ "Odłączanie od Wi-Fi '%s'")
MSG_HASH(MSG_LOCALAP_ALREADY_RUNNING,
- "Wi-Fi Access Point is already started")
+ "Punkt dostępu Wi-Fi jest już uruchomiony")
MSG_HASH(MSG_LOCALAP_NOT_RUNNING,
- "Wi-Fi Access Point is not running")
+ "Punkt dostępu Wi-Fi nie jest uruchomiony")
MSG_HASH(MSG_LOCALAP_STARTING,
- "Starting Wi-Fi Access Point with SSID=%s and Passkey=%s")
+ "Uruchamianie punktu dostępu Wi-Fi z SSID =% si kluczem dostępu=%s")
MSG_HASH(MSG_LOCALAP_ERROR_CONFIG_CREATE,
- "Could not create Wi-Fi Access Point configuration file.")
+ "Nie można utworzyć pliku konfiguracyjnego punktu dostępu Wi-Fi.")
MSG_HASH(MSG_LOCALAP_ERROR_CONFIG_PARSE,
- "Wrong configuration file - could not find APNAME or PASSWORD in %s")
+ "Niepoprawny plik konfiguracyjny - nie można znaleźć APNAME lub PASSWORD w %s")
#endif
diff --git a/intl/msg_hash_pt_br.h b/intl/msg_hash_pt_br.h
index 1168ffd470..cf0b3ddf93 100644
--- a/intl/msg_hash_pt_br.h
+++ b/intl/msg_hash_pt_br.h
@@ -9186,7 +9186,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_URL,
"URL do Serviço de IA")
MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_ENABLE,
"Serviço de IA Habilitado")
-MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE,
+MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE, /* TODO/FIXME - update this - see US original */
"Interrompe o jogo durante a tradução (modo Imagem) ou continua em execução (modo Fala)")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_URL,
"Um endereço http:// url apontando para o serviço de tradução a ser usado.")
diff --git a/intl/msg_hash_pt_pt.h b/intl/msg_hash_pt_pt.h
index c59842a0cd..881ea4dc95 100644
--- a/intl/msg_hash_pt_pt.h
+++ b/intl/msg_hash_pt_pt.h
@@ -3615,7 +3615,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_URL,
MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_ENABLE,
"AI Service Enabled")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE,
- "Pauses gameplay during translation (Image mode), or continues to run (Speech mode)")
+ "Show translation as a text overlay (Image mode), or play as Text-To-Speech (Speech mode)")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_URL,
"A http:// url pointing to the translation service to use.")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_ENABLE,
diff --git a/intl/msg_hash_ru.h b/intl/msg_hash_ru.h
index f883cbdfbd..f5fb7cb84b 100644
--- a/intl/msg_hash_ru.h
+++ b/intl/msg_hash_ru.h
@@ -3813,7 +3813,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_URL,
MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_ENABLE,
"AI Service Enabled")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE,
- "Pauses gameplay during translation (Image mode), or continues to run (Speech mode)")
+ "Show translation as a text overlay (Image mode), or play as Text-To-Speech (Speech mode)")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_URL,
"A http:// url pointing to the translation service to use.")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_ENABLE,
diff --git a/intl/msg_hash_tr.h b/intl/msg_hash_tr.h
index 9bcb013426..cc0ab2c2a5 100644
--- a/intl/msg_hash_tr.h
+++ b/intl/msg_hash_tr.h
@@ -8811,7 +8811,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_URL,
"AI Servis URL'si")
MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_ENABLE,
"AI Servisi Etkinleştirildi")
-MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE,
+MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE, /* TODO/FIXME - update this - see US original */
"Çeviri sırasında oyunu duraklatır (Görüntü modu) veya çalışmaya devam eder (Konuşma modu)")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_URL,
"Kullanılacak çeviri hizmetini gösteren bir http:// url'si.")
diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h
index ef9e7c7924..0de60c3758 100644
--- a/intl/msg_hash_us.h
+++ b/intl/msg_hash_us.h
@@ -36,7 +36,8 @@ MSG_HASH(
)
MSG_HASH(
MSG_NATIVE,
- "Native")
+ "Native"
+ )
MSG_HASH(
MSG_DEVICE_DISCONNECTED_FROM_PORT,
"Device disconnected from port"
@@ -1654,10 +1655,14 @@ MSG_HASH(
MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST,
"Load Content"
)
-MSG_HASH(MENU_ENUM_LABEL_VALUE_LOAD_DISC,
- "Load Disc")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_DUMP_DISC,
- "Dump Disc")
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_LOAD_DISC,
+ "Load Disc"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DUMP_DISC,
+ "Dump Disc"
+ )
MSG_HASH(
MENU_ENUM_LABEL_VALUE_LOAD_STATE,
"Load State"
@@ -1746,6 +1751,74 @@ MSG_HASH(
MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_OZONE_DARK,
"Ozone Dark"
)
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_NORD,
+ "Nord"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_GRUVBOX_DARK,
+ "Gruvbox Dark"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_SOLARIZED_DARK,
+ "Solarized Dark"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_CUTIE_BLUE,
+ "Cutie Blue"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_CUTIE_CYAN,
+ "Cutie Cyan"
+ )
+ MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_CUTIE_GREEN,
+ "Cutie Green"
+ )
+ MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_CUTIE_ORANGE,
+ "Cutie Orange"
+ )
+ MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_CUTIE_PINK,
+ "Cutie Pink"
+ )
+ MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_CUTIE_PURPLE,
+ "Cutie Purple"
+ )
+ MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_CUTIE_RED,
+ "Cutie Red"
+ )
+ MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_VIRTUAL_BOY,
+ "Virtual Boy"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_TRANSITION_ANIMATION,
+ "Menu Transition Animation"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_MATERIALUI_MENU_TRANSITION_ANIMATION,
+ "Enable smooth animation effects when navigating between different levels of the menu."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_TRANSITION_ANIM_AUTO,
+ "Auto"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_TRANSITION_ANIM_FADE,
+ "Fade"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_TRANSITION_ANIM_SLIDE,
+ "Slide"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_TRANSITION_ANIM_NONE,
+ "OFF"
+ )
MSG_HASH(
MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_FOOTER_OPACITY,
"Footer Opacity"
@@ -2325,10 +2398,14 @@ MSG_HASH(
"Restart RetroArch"
)
#endif
-MSG_HASH(MENU_ENUM_LABEL_VALUE_RDB_ENTRY_DETAIL,
- "Database Entry")
-MSG_HASH(MENU_ENUM_SUBLABEL_RDB_ENTRY_DETAIL,
- "Show database information for current content")
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_RDB_ENTRY_DETAIL,
+ "Database Entry"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_RDB_ENTRY_DETAIL,
+ "Show database information for current content"
+ )
MSG_HASH(
MENU_ENUM_LABEL_VALUE_RDB_ENTRY_ANALOG,
"Analog supported"
@@ -3381,68 +3458,68 @@ MSG_HASH(
"Show date / time"
)
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE,
- "Style of date / time"
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE,
+ "Style of date / time"
)
MSG_HASH(
- MENU_ENUM_SUBLABEL_TIMEDATE_STYLE,
- "Changes the style current date and/or time is shown inside the menu."
+ MENU_ENUM_SUBLABEL_TIMEDATE_STYLE,
+ "Changes the style current date and/or time is shown inside the menu."
)
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HMS,
- "YYYY-MM-DD HH:MM:SS"
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HMS,
+ "YYYY-MM-DD HH:MM:SS"
)
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HM,
- "YYYY-MM-DD HH:MM"
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HM,
+ "YYYY-MM-DD HH:MM"
)
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MDYYYY,
- "MM-DD-YYYY HH:MM"
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MDYYYY,
+ "MM-DD-YYYY HH:MM"
)
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HMS,
- "HH:MM:SS"
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HMS,
+ "HH:MM:SS"
)
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HM,
- "HH:MM"
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HM,
+ "HH:MM"
)
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_DM_HM,
- "DD/MM HH:MM"
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_DM_HM,
+ "DD/MM HH:MM"
)
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MD_HM,
- "MM/DD HH:MM"
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MD_HM,
+ "MM/DD HH:MM"
)
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HMS_AM_PM,
- "YYYY-MM-DD HH:MM:SS (AM/PM)"
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HMS_AM_PM,
+ "YYYY-MM-DD HH:MM:SS (AM/PM)"
)
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HM_AM_PM,
- "YYYY-MM-DD HH:MM (AM/PM)"
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HM_AM_PM,
+ "YYYY-MM-DD HH:MM (AM/PM)"
)
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MDYYYY_AM_PM,
- "MM-DD-YYYY HH:MM (AM/PM)"
- )
- MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HMS_AM_PM,
- "HH:MM:SS (AM/PM)"
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MDYYYY_AM_PM,
+ "MM-DD-YYYY HH:MM (AM/PM)"
)
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HM_AM_PM,
- "HH:MM (AM/PM)"
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HMS_AM_PM,
+ "HH:MM:SS (AM/PM)"
)
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_DM_HM_AM_PM,
- "DD/MM HH:MM (AM/PM)"
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HM_AM_PM,
+ "HH:MM (AM/PM)"
)
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MD_HM_AM_PM,
- "MM/DD HH:MM (AM/PM)"
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_DM_HM_AM_PM,
+ "DD/MM HH:MM (AM/PM)"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MD_HM_AM_PM,
+ "MM/DD HH:MM (AM/PM)"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_MENU_TICKER_TYPE,
@@ -5288,9 +5365,9 @@ MSG_HASH(
"Screenshot saved"
)
MSG_HASH(
- MSG_ACHIEVEMENT_UNLOCKED,
- "Achievement Unlocked"
- )
+ MSG_ACHIEVEMENT_UNLOCKED,
+ "Achievement Unlocked"
+ )
MSG_HASH(
MSG_CHANGE_THUMBNAIL_TYPE,
"Change thumbnail type"
@@ -6205,9 +6282,9 @@ MSG_HASH(
"Type of thumbnail to display at the bottom right of playlists."
)
MSG_HASH(
- MENU_ENUM_SUBLABEL_LEFT_THUMBNAILS_OZONE,
- "Replace the content metadata panel by another thumbnail."
- )
+ MENU_ENUM_SUBLABEL_LEFT_THUMBNAILS_OZONE,
+ "Replace the content metadata panel by another thumbnail."
+ )
MSG_HASH(
MENU_ENUM_SUBLABEL_XMB_VERTICAL_THUMBNAILS,
"Display the left thumbnail under the right one, on the right side of the screen."
@@ -6899,6 +6976,22 @@ MSG_HASH(
MENU_ENUM_SUBLABEL_MATERIALUI_ICONS_ENABLE,
"Show icons at the left of the menu entries."
)
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_OPTIMIZE_LANDSCAPE_LAYOUT,
+ "Optimize Landscape Layout"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_MATERIALUI_OPTIMIZE_LANDSCAPE_LAYOUT,
+ "Automatically adjust menu layout to better fit the screen when using landscape display orientations."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_AUTO_ROTATE_NAV_BAR,
+ "Auto-Rotate Navigation Bar"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_MATERIALUI_AUTO_ROTATE_NAV_BAR,
+ "Automatically move the navigation bar to the right hand side of the screen when using landscape display orientations."
+ )
MSG_HASH(
MENU_ENUM_LABEL_VALUE_XMB_MAIN_MENU_ENABLE_SETTINGS,
"Settings Tab"
@@ -7689,9 +7782,9 @@ MSG_HASH(
"%1 items"
)
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_DROP_IMAGE_HERE,
- "Drop image here"
- )
+ MENU_ENUM_LABEL_VALUE_QT_DROP_IMAGE_HERE,
+ "Drop image here"
+ )
#ifdef HAVE_QT
MSG_HASH(
MENU_ENUM_LABEL_VALUE_QT_SCAN_FINISHED,
@@ -8658,13 +8751,13 @@ MSG_HASH(
"Start on playlist:"
)
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_THUMBNAIL_TYPE,
- "Thumbnail"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_THUMBNAIL_TYPE,
+ "Thumbnail"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_THUMBNAIL_CACHE_LIMIT,
- "Thumbnail cache limit:"
- )
+ MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_THUMBNAIL_CACHE_LIMIT,
+ "Thumbnail cache limit:"
+ )
MSG_HASH(
MENU_ENUM_LABEL_VALUE_QT_DOWNLOAD_ALL_THUMBNAILS,
"Download All Thumbnails"
@@ -9134,7 +9227,6 @@ MSG_HASH(
MENU_ENUM_SUBLABEL_PLAYLIST_FUZZY_ARCHIVE_MATCH,
"When searching playlists for entries associated with compressed files, match only the archive file name instead of [file name]+[content]. Enable this to avoid duplicate content history entries when loading compressed files."
)
-
MSG_HASH(
MENU_ENUM_LABEL_VALUE_HELP_SEND_DEBUG_INFO,
"Send Debug Info"
@@ -9183,34 +9275,62 @@ MSG_HASH(
MENU_ENUM_SUBLABEL_LOG_DIR,
"Save system event log files to this directory."
)
-MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_WIDGETS_ENABLE,
- "Menu Widgets")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_SHADERS_ENABLE,
- "Video Shaders")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_SCAN_WITHOUT_CORE_MATCH,
- "Scan without core match")
-MSG_HASH(MENU_ENUM_SUBLABEL_SCAN_WITHOUT_CORE_MATCH,
- "When disabled, content is only added to playlists if you have a core installed that supports its extension. By enabling this, it will add to playlist regardless. This way, you can install the core you need later on after scanning.")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_XMB_ANIMATION_HORIZONTAL_HIGHLIGHT,
- "Animation Horizontal Icon Highlight")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_XMB_ANIMATION_MOVE_UP_DOWN,
- "Animation Move Up/Down")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_XMB_ANIMATION_OPENING_MAIN_MENU,
- "Animation Main Menu Opens/Closes")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_GPU_INDEX,
- "GPU Index")
-MSG_HASH(MSG_DUMPING_DISC,
- "Dumping disc...")
-MSG_HASH(MSG_DRIVE_NUMBER,
- "Drive %d")
-MSG_HASH(MSG_LOAD_CORE_FIRST,
- "Please load a core first.")
-MSG_HASH(MSG_DISC_DUMP_FAILED_TO_READ_FROM_DRIVE,
- "Failed to read from drive. Dump aborted.")
-MSG_HASH(MSG_DISC_DUMP_FAILED_TO_WRITE_TO_DISK,
- "Failed to write to disk. Dump aborted.")
-MSG_HASH(MSG_NO_DISC_INSERTED,
- "No disc is inserted in the drive.")
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MENU_WIDGETS_ENABLE,
+ "Menu Widgets"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADERS_ENABLE,
+ "Video Shaders"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_SCAN_WITHOUT_CORE_MATCH,
+ "Scan without core match"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_SCAN_WITHOUT_CORE_MATCH,
+ "When disabled, content is only added to playlists if you have a core installed that supports its extension. By enabling this, it will add to playlist regardless. This way, you can install the core you need later on after scanning."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MENU_XMB_ANIMATION_HORIZONTAL_HIGHLIGHT,
+ "Animation Horizontal Icon Highlight"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MENU_XMB_ANIMATION_MOVE_UP_DOWN,
+ "Animation Move Up/Down"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_MENU_XMB_ANIMATION_OPENING_MAIN_MENU,
+ "Animation Main Menu Opens/Closes"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_VIDEO_GPU_INDEX,
+ "GPU Index"
+ )
+MSG_HASH(
+ MSG_DUMPING_DISC,
+ "Dumping disc..."
+ )
+MSG_HASH(
+ MSG_DRIVE_NUMBER,
+ "Drive %d"
+ )
+MSG_HASH(
+ MSG_LOAD_CORE_FIRST,
+ "Please load a core first."
+ )
+MSG_HASH(
+ MSG_DISC_DUMP_FAILED_TO_READ_FROM_DRIVE,
+ "Failed to read from drive. Dump aborted."
+ )
+MSG_HASH(
+ MSG_DISC_DUMP_FAILED_TO_WRITE_TO_DISK,
+ "Failed to write to disk. Dump aborted."
+ )
+MSG_HASH(
+ MSG_NO_DISC_INSERTED,
+ "No disc is inserted in the drive."
+ )
MSG_HASH(
MENU_ENUM_LABEL_VALUE_DISC_INFORMATION,
"Disc Information"
@@ -9235,10 +9355,14 @@ MSG_HASH(
MENU_ENUM_SUBLABEL_FRONTEND_LOG_LEVEL,
"Sets log level for the frontend. If a log level issued by the frontend is below this value, it is ignored."
)
-MSG_HASH(MENU_ENUM_LABEL_VALUE_FPS_UPDATE_INTERVAL,
- "Framerate Update Interval (in frames)")
-MSG_HASH(MENU_ENUM_SUBLABEL_FPS_UPDATE_INTERVAL,
- "Framerate display will be updated at the set interval (in frames).")
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_FPS_UPDATE_INTERVAL,
+ "Framerate Update Interval (in frames)"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_FPS_UPDATE_INTERVAL,
+ "Framerate display will be updated at the set interval (in frames)."
+ )
MSG_HASH(
MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_RESTART_CONTENT,
"Show Restart Content"
@@ -9287,26 +9411,46 @@ MSG_HASH(
MENU_ENUM_SUBLABEL_AI_SERVICE_SETTINGS,
"Change settings for the AI Service (Translation/TTS/Misc)."
)
-MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_MODE,
- "AI Service Output")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_URL,
- "AI Service URL")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_ENABLE,
- "AI Service Enabled")
-MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE,
- "Pauses gameplay during translation (Image mode), or continues to run (Speech mode)")
-MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_URL,
- "A http:// url pointing to the translation service to use.")
-MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_ENABLE,
- "Enable AI Service to run when the AI Service hotkey is pressed.")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_TARGET_LANG,
- "Target Language")
-MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_TARGET_LANG,
- "The language the service will translate to. If set to 'Don't Care', it will default to English.")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_SOURCE_LANG,
- "Source Language")
-MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_SOURCE_LANG,
- "The language the service will translate from. If set to 'Don't Care', it will attempt to auto-detect the language. Setting it to a specific language will make the translation more accurate.")
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_AI_SERVICE_MODE,
+ "AI Service Output"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_AI_SERVICE_URL,
+ "AI Service URL"
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_AI_SERVICE_ENABLE,
+ "AI Service Enabled"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AI_SERVICE_MODE,
+ "Show translation as a text overlay (Image mode), or play as Text-To-Speech (Speech mode)"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AI_SERVICE_URL,
+ "A http:// url pointing to the translation service to use."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AI_SERVICE_ENABLE,
+ "Enable AI Service to run when the AI Service hotkey is pressed."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_AI_SERVICE_TARGET_LANG,
+ "Target Language"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AI_SERVICE_TARGET_LANG,
+ "The language the service will translate to. If set to 'Don't Care', it will default to English."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_AI_SERVICE_SOURCE_LANG,
+ "Source Language"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AI_SERVICE_SOURCE_LANG,
+ "The language the service will translate from. If set to 'Don't Care', it will attempt to auto-detect the language. Setting it to a specific language will make the translation more accurate."
+ )
MSG_HASH(
MENU_ENUM_LABEL_VALUE_LANG_CZECH,
"Czech"
@@ -9316,177 +9460,177 @@ MSG_HASH(
"Danish"
)
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_SWEDISH,
- "Swedish"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_SWEDISH,
+ "Swedish"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_CROATIAN,
- "Croatian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_CROATIAN,
+ "Croatian"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_CATALAN,
- "Catalan"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_CATALAN,
+ "Catalan"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_BULGARIAN,
- "Bulgarian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_BULGARIAN,
+ "Bulgarian"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_BENGALI,
- "Bengali"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_BENGALI,
+ "Bengali"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_BASQUE,
- "Basque"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_BASQUE,
+ "Basque"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_AZERBAIJANI,
- "Azerbaijani"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_AZERBAIJANI,
+ "Azerbaijani"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_ALBANIAN,
- "Albanian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_ALBANIAN,
+ "Albanian"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_AFRIKAANS,
- "Afrikaans"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_AFRIKAANS,
+ "Afrikaans"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_ESTONIAN,
- "Estonian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_ESTONIAN,
+ "Estonian"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_FILIPINO,
- "Filipino"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_FILIPINO,
+ "Filipino"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_FINNISH,
- "Finnish"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_FINNISH,
+ "Finnish"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_GALICIAN,
- "Galician"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_GALICIAN,
+ "Galician"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_GEORGIAN,
- "Georgian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_GEORGIAN,
+ "Georgian"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_GUJARATI,
- "Gujarati"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_GUJARATI,
+ "Gujarati"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_HAITIAN_CREOLE,
- "Haitian Creole"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_HAITIAN_CREOLE,
+ "Haitian Creole"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_HEBREW,
- "Hebrew"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_HEBREW,
+ "Hebrew"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_HINDI,
- "Hindi"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_HINDI,
+ "Hindi"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_HUNGARIAN,
- "Hungarian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_HUNGARIAN,
+ "Hungarian"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_ICELANDIC,
- "Icelandic"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_ICELANDIC,
+ "Icelandic"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_INDONESIAN,
- "Indonesian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_INDONESIAN,
+ "Indonesian"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_IRISH,
- "Irish"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_IRISH,
+ "Irish"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_KANNADA,
- "Kannada"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_KANNADA,
+ "Kannada"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_LATIN,
- "Latin"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_LATIN,
+ "Latin"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_LATVIAN,
- "Latvian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_LATVIAN,
+ "Latvian"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_LITHUANIAN,
- "Lithuanian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_LITHUANIAN,
+ "Lithuanian"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_MACEDONIAN,
- "Macedonian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_MACEDONIAN,
+ "Macedonian"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_MALAY,
- "Malay"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_MALAY,
+ "Malay"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_MALTESE,
- "Maltese"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_MALTESE,
+ "Maltese"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_NORWEGIAN,
- "Norwegian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_NORWEGIAN,
+ "Norwegian"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_PERSIAN,
- "Persian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_PERSIAN,
+ "Persian"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_ROMANIAN,
- "Romanian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_ROMANIAN,
+ "Romanian"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_SERBIAN,
- "Serbian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_SERBIAN,
+ "Serbian"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_SLOVAK,
- "Slovak"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_SLOVAK,
+ "Slovak"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_SLOVENIAN,
- "Slovenian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_SLOVENIAN,
+ "Slovenian"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_SWAHILI,
- "Swahili"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_SWAHILI,
+ "Swahili"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_TAMIL,
- "Tamil"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_TAMIL,
+ "Tamil"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_TELUGU,
- "Telugu"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_TELUGU,
+ "Telugu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_THAI,
- "Thai"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_THAI,
+ "Thai"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_UKRAINIAN,
- "Ukrainian"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_UKRAINIAN,
+ "Ukrainian"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_URDU,
- "Urdu"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_URDU,
+ "Urdu"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_WELSH,
- "Welsh"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_WELSH,
+ "Welsh"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_LANG_YIDDISH,
- "Yiddish"
- )
+ MENU_ENUM_LABEL_VALUE_LANG_YIDDISH,
+ "Yiddish"
+ )
MSG_HASH(
MENU_ENUM_LABEL_VALUE_SETTINGS_SHOW_DRIVERS,
"Show Drivers"
@@ -9639,97 +9783,173 @@ MSG_HASH(
MENU_ENUM_SUBLABEL_SETTINGS_SHOW_DIRECTORY,
"Show or hide 'Directory Settings' on the Settings screen."
)
-MSG_HASH(MENU_ENUM_SUBLABEL_LOAD_DISC,
- "Load a physical media disc. You should first select the core (Load Core) you intend to use with the disc.")
-MSG_HASH(MENU_ENUM_SUBLABEL_DUMP_DISC,
- "Dump the physical media disc to internal storage. It will be saved as an image file.")
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AI_SERVICE_IMAGE_MODE,
- "Image Mode"
- )
+ MENU_ENUM_SUBLABEL_LOAD_DISC,
+ "Load a physical media disc. You should first select the core (Load Core) you intend to use with the disc."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE,
- "Speech Mode"
- )
+ MENU_ENUM_SUBLABEL_DUMP_DISC,
+ "Dump the physical media disc to internal storage. It will be saved as an image file."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE,
- "Remove")
+ MENU_ENUM_LABEL_VALUE_AI_SERVICE_IMAGE_MODE,
+ "Image Mode"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE,
- "Remove an automatic shader preset.")
+ MENU_ENUM_LABEL_VALUE_AI_SERVICE_SPEECH_MODE,
+ "Speech Mode"
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL,
- "Remove Global Preset")
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE,
+ "Remove"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL,
- "Remove the Global Preset, used by all content and all cores.")
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE,
+ "Remove an automatic shader preset."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE,
- "Remove Core Preset")
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GLOBAL,
+ "Remove Global Preset"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE,
- "Remove the Core Preset, used by all content ran with the currently loaded core.")
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GLOBAL,
+ "Remove the Global Preset, used by all content and all cores."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT,
- "Remove Content Directory Preset")
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_CORE,
+ "Remove Core Preset"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT,
- "Remove the Content Directory Preset, used by all content inside the current working directory.")
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_CORE,
+ "Remove the Core Preset, used by all content ran with the currently loaded core."
+ )
MSG_HASH(
- MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME,
- "Remove Game Preset")
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_PARENT,
+ "Remove Content Directory Preset"
+ )
MSG_HASH(
- MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME,
- "Remove the Game Preset, used only for the specific game in question.")
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_PARENT,
+ "Remove the Content Directory Preset, used by all content inside the current working directory."
+ )
MSG_HASH(
- MSG_SHADER_PRESET_REMOVED_SUCCESSFULLY,
- "Shader preset removed successfully.")
+ MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_REMOVE_GAME,
+ "Remove Game Preset"
+ )
MSG_HASH(
- MSG_ERROR_REMOVING_SHADER_PRESET,
- "Error removing shader preset.")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_FRAME_TIME_COUNTER_SETTINGS,
- "Frame Time Counter")
-MSG_HASH(MENU_ENUM_SUBLABEL_FRAME_TIME_COUNTER_SETTINGS,
- "Adjust settings influencing the frame time counter (only active when threaded video is disabled).")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_FRAME_TIME_COUNTER_RESET_AFTER_FASTFORWARDING,
- "Reset After Fastforward")
-MSG_HASH(MENU_ENUM_SUBLABEL_FRAME_TIME_COUNTER_RESET_AFTER_FASTFORWARDING,
- "Reset the frame time counter after fastforwarding.")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_FRAME_TIME_COUNTER_RESET_AFTER_LOAD_STATE,
- "Reset After Load State")
-MSG_HASH(MENU_ENUM_SUBLABEL_FRAME_TIME_COUNTER_RESET_AFTER_LOAD_STATE,
- "Reset the frame time counter after loading a state.")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_FRAME_TIME_COUNTER_RESET_AFTER_SAVE_STATE,
- "Reset After Save State")
-MSG_HASH(MENU_ENUM_SUBLABEL_FRAME_TIME_COUNTER_RESET_AFTER_SAVE_STATE,
- "Reset the frame time counter after saving a state.")
-MSG_HASH(MENU_ENUM_SUBLABEL_MENU_WIDGETS_ENABLE,
- "Use modern decorated animations, notifications, indicators and controls instead of the old text only system.")
-MSG_HASH(MENU_ENUM_SUBLABEL_MENU_XMB_ANIMATION_HORIZONTAL_HIGHLIGHT,
- "The animation that triggers when scrolling between tabs.")
-MSG_HASH(MENU_ENUM_SUBLABEL_MENU_XMB_ANIMATION_MOVE_UP_DOWN,
- "The animation that triggers when moving up or down.")
-MSG_HASH(MENU_ENUM_SUBLABEL_MENU_XMB_ANIMATION_OPENING_MAIN_MENU,
- "The animation that triggers when opening a submenu.")
-MSG_HASH(MENU_ENUM_LABEL_VALUE_DELETE_PLAYLIST,
- "Delete Playlist")
+ MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_REMOVE_GAME,
+ "Remove the Game Preset, used only for the specific game in question."
+ )
+MSG_HASH(
+ MSG_SHADER_PRESET_REMOVED_SUCCESSFULLY,
+ "Shader preset removed successfully."
+ )
+MSG_HASH(
+ MSG_ERROR_REMOVING_SHADER_PRESET,
+ "Error removing shader preset."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_FRAME_TIME_COUNTER_SETTINGS,
+ "Frame Time Counter"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_FRAME_TIME_COUNTER_SETTINGS,
+ "Adjust settings influencing the frame time counter (only active when threaded video is disabled)."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_FRAME_TIME_COUNTER_RESET_AFTER_FASTFORWARDING,
+ "Reset After Fastforward"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_FRAME_TIME_COUNTER_RESET_AFTER_FASTFORWARDING,
+ "Reset the frame time counter after fastforwarding."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_FRAME_TIME_COUNTER_RESET_AFTER_LOAD_STATE,
+ "Reset After Load State"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_FRAME_TIME_COUNTER_RESET_AFTER_LOAD_STATE,
+ "Reset the frame time counter after loading a state."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_FRAME_TIME_COUNTER_RESET_AFTER_SAVE_STATE,
+ "Reset After Save State"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_FRAME_TIME_COUNTER_RESET_AFTER_SAVE_STATE,
+ "Reset the frame time counter after saving a state."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_MENU_WIDGETS_ENABLE,
+ "Use modern decorated animations, notifications, indicators and controls instead of the old text only system."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_MENU_XMB_ANIMATION_HORIZONTAL_HIGHLIGHT,
+ "The animation that triggers when scrolling between tabs."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_MENU_XMB_ANIMATION_MOVE_UP_DOWN,
+ "The animation that triggers when moving up or down."
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_MENU_XMB_ANIMATION_OPENING_MAIN_MENU,
+ "The animation that triggers when opening a submenu."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DELETE_PLAYLIST,
+ "Delete Playlist"
+ )
#ifdef HAVE_LAKKA
-MSG_HASH(MENU_ENUM_LABEL_VALUE_LOCALAP_ENABLE,
- "Wi-Fi Access Point")
-MSG_HASH(MENU_ENUM_SUBLABEL_LOCALAP_ENABLE,
- "Enable or disable Wi-Fi Access Point.")
-MSG_HASH(MSG_LOCALAP_SWITCHING_OFF,
- "Switching off Wi-Fi Access Point.")
-MSG_HASH(MSG_WIFI_DISCONNECT_FROM,
- "Disconnecting from Wi-Fi '%s'")
-MSG_HASH(MSG_LOCALAP_ALREADY_RUNNING,
- "Wi-Fi Access Point is already started")
-MSG_HASH(MSG_LOCALAP_NOT_RUNNING,
- "Wi-Fi Access Point is not running")
-MSG_HASH(MSG_LOCALAP_STARTING,
- "Starting Wi-Fi Access Point with SSID=%s and Passkey=%s")
-MSG_HASH(MSG_LOCALAP_ERROR_CONFIG_CREATE,
- "Could not create Wi-Fi Access Point configuration file.")
-MSG_HASH(MSG_LOCALAP_ERROR_CONFIG_PARSE,
- "Wrong configuration file - could not find APNAME or PASSWORD in %s")
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_LOCALAP_ENABLE,
+ "Wi-Fi Access Point"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_LOCALAP_ENABLE,
+ "Enable or disable Wi-Fi Access Point."
+ )
+MSG_HASH(
+ MSG_LOCALAP_SWITCHING_OFF,
+ "Switching off Wi-Fi Access Point."
+ )
+MSG_HASH(
+ MSG_WIFI_DISCONNECT_FROM,
+ "Disconnecting from Wi-Fi '%s'"
+ )
+MSG_HASH(
+ MSG_LOCALAP_ALREADY_RUNNING,
+ "Wi-Fi Access Point is already started"
+ )
+MSG_HASH(
+ MSG_LOCALAP_NOT_RUNNING,
+ "Wi-Fi Access Point is not running"
+ )
+MSG_HASH(
+ MSG_LOCALAP_STARTING,
+ "Starting Wi-Fi Access Point with SSID=%s and Passkey=%s"
+ )
+MSG_HASH(
+ MSG_LOCALAP_ERROR_CONFIG_CREATE,
+ "Could not create Wi-Fi Access Point configuration file."
+ )
+MSG_HASH(
+ MSG_LOCALAP_ERROR_CONFIG_PARSE,
+ "Wrong configuration file - could not find APNAME or PASSWORD in %s"
+ )
#endif
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_DRIVER_SWITCH_ENABLE,
+ "Allow cores to switch the video driver"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_DRIVER_SWITCH_ENABLE,
+ "Allow cores to force switch to a different video driver than is currently loaded."
+ )
+MSG_HASH(
+ MENU_ENUM_LABEL_VALUE_AI_SERVICE_PAUSE,
+ "AI Service Pause Toggle"
+ )
+MSG_HASH(
+ MENU_ENUM_SUBLABEL_AI_SERVICE_PAUSE,
+ "Pauses core while screen is translated."
+ )
diff --git a/intl/msg_hash_vn.h b/intl/msg_hash_vn.h
index ea5b3b2193..9a7327ab14 100644
--- a/intl/msg_hash_vn.h
+++ b/intl/msg_hash_vn.h
@@ -3707,7 +3707,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_URL,
MSG_HASH(MENU_ENUM_LABEL_VALUE_AI_SERVICE_ENABLE,
"AI Service Enabled")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_MODE,
- "Pauses gameplay during translation (Image mode), or continues to run (Speech mode)")
+ "Show translation as a text overlay (Image mode), or play as Text-To-Speech (Speech mode)")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_URL,
"A http:// url pointing to the translation service to use.")
MSG_HASH(MENU_ENUM_SUBLABEL_AI_SERVICE_ENABLE,
diff --git a/libretro-common/formats/cdfs/cdfs.c b/libretro-common/formats/cdfs/cdfs.c
index 7d7faa32cd..045729c87e 100644
--- a/libretro-common/formats/cdfs/cdfs.c
+++ b/libretro-common/formats/cdfs/cdfs.c
@@ -5,10 +5,15 @@
#include
#include
-static void cdfs_determine_sector_size(cdfs_file_t* file)
+#ifdef HAVE_CHD
+#include
+#endif
+
+static void cdfs_determine_sector_size(cdfs_track_t* track)
{
uint8_t buffer[32];
int64_t stream_size;
+ const int toc_sector = track->pregap_sectors + 16;
/* MODE information is normally found in the CUE sheet, but we can try to determine it from the raw data.
*
@@ -23,23 +28,23 @@ static void cdfs_determine_sector_size(cdfs_file_t* file)
*/
/* The boot record or primary volume descriptor is always at sector 16 and will contain a "CD001" marker */
- intfstream_seek(file->stream, 16 * 2352, SEEK_SET);
- if (intfstream_read(file->stream, buffer, sizeof(buffer)) < sizeof(buffer))
+ intfstream_seek(track->stream, toc_sector * 2352, SEEK_SET);
+ if (intfstream_read(track->stream, buffer, sizeof(buffer)) < sizeof(buffer))
return;
/* if this is a CDROM-XA data source, the "CD001" tag will be 25 bytes into the sector */
if (buffer[25] == 0x43 && buffer[26] == 0x44 &&
buffer[27] == 0x30 && buffer[28] == 0x30 && buffer[29] == 0x31)
{
- file->stream_sector_size = 2352;
- file->stream_sector_header_size = 24;
+ track->stream_sector_size = 2352;
+ track->stream_sector_header_size = 24;
}
/* otherwise it should be 17 bytes into the sector */
else if (buffer[17] == 0x43 && buffer[18] == 0x44 &&
buffer[19] == 0x30 && buffer[20] == 0x30 && buffer[21] == 0x31)
{
- file->stream_sector_size = 2352;
- file->stream_sector_header_size = 16;
+ track->stream_sector_size = 2352;
+ track->stream_sector_header_size = 16;
}
else
{
@@ -48,40 +53,56 @@ static void cdfs_determine_sector_size(cdfs_file_t* file)
buffer[4] == 0xFF && buffer[5] == 0xFF && buffer[6] == 0xFF && buffer[7] == 0xFF &&
buffer[8] == 0xFF && buffer[9] == 0xFF && buffer[10] == 0xFF && buffer[11] == 0)
{
- /* don't actually expect to get here - a properly headered sector should have had the CD001 tag */
+ /* if we didn't find a CD001 tag, this format may predate ISO-9660 */
/* after the 12 byte sync pattern is three bytes identifying the sector and then one byte for the mode (total 16 bytes) */
- file->stream_sector_size = 2352;
- file->stream_sector_header_size = 16;
+ track->stream_sector_size = 2352;
+ track->stream_sector_header_size = 16;
}
else
{
/* no recognizable header - attempt to determine sector size from stream size */
- stream_size = intfstream_get_size(file->stream);
+ stream_size = intfstream_get_size(track->stream);
if ((stream_size % 2352) == 0)
{
/* audio tracks use all 2352 bytes without a header */
- file->stream_sector_size = 2352;
+ track->stream_sector_size = 2352;
}
else if ((stream_size % 2048) == 0)
{
/* cooked tracks eliminate all header/footer data */
- file->stream_sector_size = 2048;
+ track->stream_sector_size = 2048;
}
else if ((stream_size % 2336) == 0)
{
/* MODE 2 format without 16-byte sync data */
- file->stream_sector_size = 2336;
- file->stream_sector_header_size = 8;
+ track->stream_sector_size = 2336;
+ track->stream_sector_header_size = 8;
}
}
}
}
-static void cdfs_seek_sector(cdfs_file_t* file, unsigned int sector)
+static void cdfs_seek_track_sector(cdfs_track_t* track, unsigned int sector)
{
- intfstream_seek(file->stream, sector * file->stream_sector_size + file->stream_sector_header_size, SEEK_SET);
+ intfstream_seek(track->stream, (sector + track->pregap_sectors) * track->stream_sector_size + track->stream_sector_header_size, SEEK_SET);
+}
+
+void cdfs_seek_sector(cdfs_file_t* file, unsigned int sector)
+{
+ /* only allowed if open_file was called with a NULL path */
+ if (file->first_sector == 0)
+ {
+ if (sector != file->current_sector)
+ {
+ file->current_sector = sector;
+ file->sector_buffer_valid = 0;
+ }
+
+ file->pos = file->current_sector * 2048;
+ file->current_sector_offset = 0;
+ }
}
static int cdfs_find_file(cdfs_file_t* file, const char* path)
@@ -108,8 +129,8 @@ static int cdfs_find_file(cdfs_file_t* file, const char* path)
int offset;
/* find the cd information (always 16 frames in) */
- cdfs_seek_sector(file, 16);
- intfstream_read(file->stream, buffer, sizeof(buffer));
+ cdfs_seek_track_sector(file->track, 16);
+ intfstream_read(file->track->stream, buffer, sizeof(buffer));
/* the directory_record starts at 156 bytes into the sector.
* the sector containing the root directory contents is a 3 byte value that is 2 bytes into the directory_record. */
@@ -118,8 +139,8 @@ static int cdfs_find_file(cdfs_file_t* file, const char* path)
}
/* process the contents of the directory */
- cdfs_seek_sector(file, sector);
- intfstream_read(file->stream, buffer, sizeof(buffer));
+ cdfs_seek_track_sector(file->track, sector);
+ intfstream_read(file->track->stream, buffer, sizeof(buffer));
path_length = strlen(path);
tmp = buffer;
@@ -149,25 +170,24 @@ static int cdfs_find_file(cdfs_file_t* file, const char* path)
return -1;
}
-int cdfs_open_file(cdfs_file_t* file, intfstream_t* stream, const char* path)
+int cdfs_open_file(cdfs_file_t* file, cdfs_track_t* track, const char* path)
{
- if (!file || !stream)
+ if (!file || !track)
return 0;
memset(file, 0, sizeof(*file));
- file->stream = stream;
- cdfs_determine_sector_size(file);
+ file->track = track;
file->current_sector = -1;
if (path != NULL)
{
file->first_sector = cdfs_find_file(file, path);
}
- else if (file->stream_sector_size)
+ else if (file->track->stream_sector_size)
{
file->first_sector = 0;
- file->size = (intfstream_get_size(file->stream) / file->stream_sector_size) * 2048;
+ file->size = (intfstream_get_size(file->track->stream) / file->track->stream_sector_size) * 2048;
}
else
{
@@ -222,8 +242,8 @@ int64_t cdfs_read_file(cdfs_file_t* file, void* buffer, uint64_t len)
while (len >= 2048)
{
- cdfs_seek_sector(file, file->current_sector);
- intfstream_read(file->stream, buffer, 2048);
+ cdfs_seek_track_sector(file->track, file->current_sector);
+ intfstream_read(file->track->stream, buffer, 2048);
buffer = (char*)buffer + 2048;
bytes_read += 2048;
@@ -234,8 +254,8 @@ int64_t cdfs_read_file(cdfs_file_t* file, void* buffer, uint64_t len)
if (len > 0)
{
- cdfs_seek_sector(file, file->current_sector);
- intfstream_read(file->stream, file->sector_buffer, 2048);
+ cdfs_seek_track_sector(file->track, file->current_sector);
+ intfstream_read(file->track->stream, file->sector_buffer, 2048);
memcpy(buffer, file->sector_buffer, len);
file->current_sector_offset = len;
file->sector_buffer_valid = 1;
@@ -322,7 +342,21 @@ static void cdfs_skip_spaces(const char** ptr)
++(*ptr);
}
-static intfstream_t* cdfs_open_cue_track(const char* path, unsigned int track_index)
+static cdfs_track_t* cdfs_wrap_stream(intfstream_t* stream, unsigned pregap_sectors)
+{
+ cdfs_track_t* track;
+
+ if (stream == NULL)
+ return NULL;
+
+ track = (cdfs_track_t*)calloc(1, sizeof(*track));
+ track->stream = stream;
+ track->pregap_sectors = pregap_sectors;
+ cdfs_determine_sector_size(track);
+ return track;
+}
+
+static cdfs_track_t* cdfs_open_cue_track(const char* path, unsigned int track_index)
{
char* cue_contents = NULL;
char* cue = NULL;
@@ -331,7 +365,9 @@ static intfstream_t* cdfs_open_cue_track(const char* path, unsigned int track_in
char current_track_path[PATH_MAX_LENGTH] = {0};
char track_path[PATH_MAX_LENGTH] = {0};
intfstream_t* cue_stream = NULL;
+ cdfs_track_t* track = NULL;
int64_t stream_size = 0;
+ unsigned int pregap_sectors = 0;
cue_stream = intfstream_open_file(path, RETRO_VFS_FILE_ACCESS_READ, RETRO_VFS_FILE_ACCESS_HINT_NONE);
@@ -420,6 +456,14 @@ static intfstream_t* cdfs_open_cue_track(const char* path, unsigned int track_in
if (index_number == 1)
{
+ unsigned min = 0, sec = 0, frame = 0;
+ const char* ptr = index;
+ while (*ptr && *ptr != ' ' && *ptr != '\n')
+ ++ptr;
+ cdfs_skip_spaces(&ptr);
+ sscanf(ptr, "%u:%u:%u", &min, &sec, &frame);
+ pregap_sectors = ((min * 60) + sec) * 75 + frame;
+
if (strstr(current_track_path, "/") || strstr(current_track_path, "\\"))
{
strncpy(track_path, current_track_path, sizeof(track_path));
@@ -441,47 +485,80 @@ static intfstream_t* cdfs_open_cue_track(const char* path, unsigned int track_in
if (string_is_empty(track_path))
return NULL;
- return intfstream_open_file(track_path, RETRO_VFS_FILE_ACCESS_READ, RETRO_VFS_FILE_ACCESS_HINT_NONE);
+ return cdfs_wrap_stream(intfstream_open_file(track_path, RETRO_VFS_FILE_ACCESS_READ, RETRO_VFS_FILE_ACCESS_HINT_NONE), pregap_sectors);
}
-intfstream_t* cdfs_open_track(const char* path, unsigned int track_index)
+#ifdef HAVE_CHD
+static cdfs_track_t* cdfs_open_chd_track(const char* path, int32_t track_index)
{
+ intfstream_t* intf_stream;
+ cdfs_track_t* track;
+ unsigned int pregap_sectors;
+
+ intf_stream = intfstream_open_chd_track(path, RETRO_VFS_FILE_ACCESS_READ, RETRO_VFS_FILE_ACCESS_HINT_NONE, track_index);
+ if (!intf_stream)
+ return NULL;
+
+ pregap_sectors = intfstream_get_chd_pregap(intf_stream);
+
+ track = cdfs_wrap_stream(intf_stream, pregap_sectors);
+
+ /* CHD removes the markers from the header, so we can't detect the header size, just assume its 16 bytes */
+ if (track->stream_sector_header_size == 0)
+ track->stream_sector_header_size = 16;
+ return track;
+}
+#endif
+
+struct cdfs_track_t* cdfs_open_track(const char* path, unsigned int track_index)
+{
+ intfstream_t* stream = NULL;
const char* ext = path_get_extension(path);
if (string_is_equal_noncase(ext, "cue"))
return cdfs_open_cue_track(path, track_index);
+#ifdef HAVE_CHD
if (string_is_equal_noncase(ext, "chd"))
- return intfstream_open_chd_track(path, RETRO_VFS_FILE_ACCESS_READ, RETRO_VFS_FILE_ACCESS_HINT_NONE, track_index);
+ return cdfs_open_chd_track(path, track_index);
+#endif
/* unsupported file type */
return NULL;
}
-intfstream_t* cdfs_open_data_track(const char* path)
+struct cdfs_track_t* cdfs_open_data_track(const char* path)
{
const char* ext = path_get_extension(path);
if (string_is_equal_noncase(ext, "cue"))
return cdfs_open_cue_track(path, 0);
+#ifdef HAVE_CHD
if (string_is_equal_noncase(ext, "chd"))
- {
- /* TODO: determine data track */
- return intfstream_open_chd_track(path, RETRO_VFS_FILE_ACCESS_READ, RETRO_VFS_FILE_ACCESS_HINT_NONE, 1);
- }
+ return cdfs_open_chd_track(path, CHDSTREAM_TRACK_PRIMARY);
+#endif
/* unsupported file type - try opening as a raw track */
return cdfs_open_raw_track(path);
}
-intfstream_t* cdfs_open_raw_track(const char* path)
+cdfs_track_t* cdfs_open_raw_track(const char* path)
{
const char* ext = path_get_extension(path);
if (string_is_equal_noncase(ext, "bin") || string_is_equal_noncase(ext, "iso"))
- return intfstream_open_file(path, RETRO_VFS_FILE_ACCESS_READ, RETRO_VFS_FILE_ACCESS_HINT_NONE);
+ return cdfs_wrap_stream(intfstream_open_file(path, RETRO_VFS_FILE_ACCESS_READ, RETRO_VFS_FILE_ACCESS_HINT_NONE), 0);
/* unsupported file type */
return NULL;
}
+
+void cdfs_close_track(cdfs_track_t* track)
+{
+ if (track)
+ {
+ intfstream_close(track->stream);
+ free(track);
+ }
+}
diff --git a/libretro-common/formats/libchdr/libchdr_chd.c b/libretro-common/formats/libchdr/libchdr_chd.c
index 1f36c060ee..d076ee1291 100644
--- a/libretro-common/formats/libchdr/libchdr_chd.c
+++ b/libretro-common/formats/libchdr/libchdr_chd.c
@@ -1682,6 +1682,8 @@ static chd_error hunk_read_into_memory(chd_file *chd, UINT32 hunknum, UINT8 *des
bytes = read_compressed(chd, blockoffs, blocklen);
if (bytes == NULL)
return CHDERR_READ_ERROR;
+ if (!chd->codecintf[rawmap[0]])
+ return CHDERR_UNSUPPORTED_FORMAT;
switch (chd->codecintf[rawmap[0]]->compression)
{
case CHD_CODEC_CD_LZMA:
diff --git a/libretro-common/include/formats/cdfs.h b/libretro-common/include/formats/cdfs.h
index efe01cff66..b5d7a90f04 100644
--- a/libretro-common/include/formats/cdfs.h
+++ b/libretro-common/include/formats/cdfs.h
@@ -31,25 +31,31 @@ RETRO_BEGIN_DECLS
* of a CD (following the ISO-9660 directory structure definition)
*/
+typedef struct cdfs_track_t
+{
+ intfstream_t* stream;
+ unsigned int stream_sector_size;
+ unsigned int stream_sector_header_size;
+ unsigned int pregap_sectors;
+} cdfs_track_t;
+
typedef struct cdfs_file_t
{
int first_sector;
int current_sector;
unsigned int current_sector_offset;
int sector_buffer_valid;
- unsigned int stream_sector_size;
- unsigned int stream_sector_header_size;
unsigned int size;
unsigned int pos;
- intfstream_t* stream;
uint8_t sector_buffer[2048];
+ struct cdfs_track_t* track;
} cdfs_file_t;
/* opens the specified file within the CD or virtual CD.
* if path is NULL, will open the raw CD (useful for reading CD without having to worry about sector sizes,
* headers, or checksum data)
*/
-int cdfs_open_file(cdfs_file_t* file, intfstream_t* stream, const char* path);
+int cdfs_open_file(cdfs_file_t* file, cdfs_track_t* stream, const char* path);
void cdfs_close_file(cdfs_file_t* file);
@@ -61,6 +67,8 @@ int64_t cdfs_tell(cdfs_file_t* file);
int64_t cdfs_seek(cdfs_file_t* file, int64_t offset, int whence);
+void cdfs_seek_sector(cdfs_file_t* file, unsigned int sector);
+
/* opens the specified track in a CD or virtual CD file - the resulting stream should be passed to
* cdfs_open_file to get access to a file within the CD.
*
@@ -75,11 +83,11 @@ int64_t cdfs_seek(cdfs_file_t* file, int64_t offset, int whence);
* MODE1/2048 - untested
* MODE2/2336 - untested
*/
-intfstream_t* cdfs_open_track(const char* path, unsigned int track_index);
+cdfs_track_t* cdfs_open_track(const char* path, unsigned int track_index);
/* opens the first data track in a CD or virtual CD file. see cdfs_open_track for supported file formats
*/
-intfstream_t* cdfs_open_data_track(const char* path);
+cdfs_track_t* cdfs_open_data_track(const char* path);
/* opens a raw track file for a CD or virtual CD.
*
@@ -89,7 +97,10 @@ intfstream_t* cdfs_open_data_track(const char* path);
* bin - path will point to the bin file
* iso - path will point to the iso file
*/
-intfstream_t* cdfs_open_raw_track(const char* path);
+cdfs_track_t* cdfs_open_raw_track(const char* path);
+
+/* closes the CD or virtual CD track and frees the associated memory */
+void cdfs_close_track(cdfs_track_t* track);
RETRO_END_DECLS
diff --git a/libretro-common/include/libretro.h b/libretro-common/include/libretro.h
index 960f7a6f01..2b7fc95a76 100644
--- a/libretro-common/include/libretro.h
+++ b/libretro-common/include/libretro.h
@@ -1934,6 +1934,10 @@ enum retro_sensor_action
{
RETRO_SENSOR_ACCELEROMETER_ENABLE = 0,
RETRO_SENSOR_ACCELEROMETER_DISABLE,
+ RETRO_SENSOR_GYROSCOPE_ENABLE,
+ RETRO_SENSOR_GYROSCOPE_DISABLE,
+ RETRO_SENSOR_ILLUMINANCE_ENABLE,
+ RETRO_SENSOR_ILLUMINANCE_DISABLE,
RETRO_SENSOR_DUMMY = INT_MAX
};
@@ -1942,6 +1946,10 @@ enum retro_sensor_action
#define RETRO_SENSOR_ACCELEROMETER_X 0
#define RETRO_SENSOR_ACCELEROMETER_Y 1
#define RETRO_SENSOR_ACCELEROMETER_Z 2
+#define RETRO_SENSOR_GYROSCOPE_X 3
+#define RETRO_SENSOR_GYROSCOPE_Y 4
+#define RETRO_SENSOR_GYROSCOPE_Z 5
+#define RETRO_SENSOR_ILLUMINANCE 6
typedef bool (RETRO_CALLCONV *retro_set_sensor_state_t)(unsigned port,
enum retro_sensor_action action, unsigned rate);
diff --git a/libretro-common/include/memmap.h b/libretro-common/include/memmap.h
index e1d75c39fc..277f9cb309 100644
--- a/libretro-common/include/memmap.h
+++ b/libretro-common/include/memmap.h
@@ -26,7 +26,7 @@
#include
#include
-#if defined(__CELLOS_LV2__) || defined(PSP) || defined(PS2) || defined(GEKKO) || defined(VITA) || defined(_XBOX) || defined(_3DS) || defined(WIIU) || defined(SWITCH)
+#if defined(__CELLOS_LV2__) || defined(PSP) || defined(PS2) || defined(GEKKO) || defined(VITA) || defined(_XBOX) || defined(_3DS) || defined(WIIU) || defined(SWITCH) || defined(HAVE_LIBNX)
/* No mman available */
#elif defined(_WIN32) && !defined(_XBOX)
#include
diff --git a/libretro-common/include/rthreads/rthreads.h b/libretro-common/include/rthreads/rthreads.h
index 946c3492b5..e4eb208c4e 100644
--- a/libretro-common/include/rthreads/rthreads.h
+++ b/libretro-common/include/rthreads/rthreads.h
@@ -245,11 +245,25 @@ void *sthread_tls_get(sthread_tls_t *tls);
/**
* @brief Binds thread specific data to a key
* @param tls
- * @return whether the operation suceeded or not
+ * @return Whether the operation suceeded or not
*/
bool sthread_tls_set(sthread_tls_t *tls, const void *data);
#endif
+/*
+ * @brief Get thread ID of specified thread
+ * @param thread
+ * @return The ID of the specified thread
+ */
+uintptr_t sthread_get_thread_id(sthread_t *thread);
+
+/*
+ * @brief Get thread ID of the current thread
+ * @param
+ * @return The ID of the current thread
+ */
+uintptr_t sthread_get_current_thread_id(void);
+
RETRO_END_DECLS
#endif
diff --git a/libretro-common/include/streams/chd_stream.h b/libretro-common/include/streams/chd_stream.h
index 246a2dcfc9..3b0ac4e131 100644
--- a/libretro-common/include/streams/chd_stream.h
+++ b/libretro-common/include/streams/chd_stream.h
@@ -57,6 +57,8 @@ int64_t chdstream_seek(chdstream_t *stream, int64_t offset, int whence);
ssize_t chdstream_get_size(chdstream_t *stream);
+uint32_t chdstream_get_pregap(chdstream_t* stream);
+
RETRO_END_DECLS
#endif
diff --git a/libretro-common/include/streams/interface_stream.h b/libretro-common/include/streams/interface_stream.h
index 5d7da563d1..58371e2ca0 100644
--- a/libretro-common/include/streams/interface_stream.h
+++ b/libretro-common/include/streams/interface_stream.h
@@ -96,6 +96,8 @@ int64_t intfstream_get_size(intfstream_internal_t *intf);
int intfstream_flush(intfstream_internal_t *intf);
+uint32_t intfstream_get_chd_pregap(intfstream_internal_t *intf);
+
intfstream_t* intfstream_open_file(const char *path,
unsigned mode, unsigned hints);
diff --git a/libretro-common/net/net_compat.c b/libretro-common/net/net_compat.c
index 4135fe397c..067655d8ae 100644
--- a/libretro-common/net/net_compat.c
+++ b/libretro-common/net/net_compat.c
@@ -149,12 +149,16 @@ int retro_epoll_fd;
#define SOC_ALIGN 0x1000
#define SOC_BUFFERSIZE 0x100000
static u32* _net_compat_net_memory;
-#elif defined(_WIN32)
+#endif
+
+#if defined(_WIN32)
int inet_aton(const char *cp, struct in_addr *inp)
{
uint32_t addr = 0;
+#ifndef _XBOX
if (cp == 0 || inp == 0)
return -1;
+#endif
addr = inet_addr(cp);
if (addr == INADDR_NONE || addr == INADDR_ANY)
@@ -387,13 +391,6 @@ uint16_t inet_htons(uint16_t hostshort)
#endif
}
-#ifdef _XBOX
-static int inet_aton(const char *cp, struct in_addr *addr)
-{
- addr->s_addr = inet_addr(cp);
- return (addr->s_addr == INADDR_NONE) ? 0 : 1;
-}
-#endif
int inet_ptrton(int af, const char *src, void *dst)
{
diff --git a/libretro-common/net/net_socket.c b/libretro-common/net/net_socket.c
index e2213c9bac..7373bc0c9f 100644
--- a/libretro-common/net/net_socket.c
+++ b/libretro-common/net/net_socket.c
@@ -20,7 +20,13 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
+
#include
+
+#ifdef _MSC_VER
+#include
+#endif
+
#include
#include
diff --git a/libretro-common/rthreads/rthreads.c b/libretro-common/rthreads/rthreads.c
index bfeb5a5dff..5b3e5d6557 100644
--- a/libretro-common/rthreads/rthreads.c
+++ b/libretro-common/rthreads/rthreads.c
@@ -940,3 +940,19 @@ bool sthread_tls_set(sthread_tls_t *tls, const void *data)
#endif
}
#endif
+
+uintptr_t sthread_get_thread_id(sthread_t *thread)
+{
+ if (!thread)
+ return 0;
+ return (uintptr_t)thread->id;
+}
+
+uintptr_t sthread_get_current_thread_id(void)
+{
+#ifdef USE_WIN32_THREADS
+ return (uintptr_t)GetCurrentThreadId();
+#else
+ return (uintptr_t)pthread_self();
+#endif
+}
diff --git a/libretro-common/streams/chd_stream.c b/libretro-common/streams/chd_stream.c
index 97d3eb4699..8a7f742453 100644
--- a/libretro-common/streams/chd_stream.c
+++ b/libretro-common/streams/chd_stream.c
@@ -426,5 +426,22 @@ int64_t chdstream_seek(chdstream_t *stream, int64_t offset, int whence)
ssize_t chdstream_get_size(chdstream_t *stream)
{
- return stream->track_end;
+ return stream->track_end;
+}
+
+uint32_t chdstream_get_pregap(chdstream_t *stream)
+{
+ metadata_t meta;
+ uint32_t frame_offset = 0;
+ uint32_t i;
+
+ for (i = 0; chdstream_get_meta(stream->chd, i, &meta); ++i)
+ {
+ if (stream->track_frame == frame_offset)
+ return meta.pregap;
+
+ frame_offset += meta.frames + meta.extra;
+ }
+
+ return 0;
}
diff --git a/libretro-common/streams/interface_stream.c b/libretro-common/streams/interface_stream.c
index 1ce6383936..752e23b5ee 100644
--- a/libretro-common/streams/interface_stream.c
+++ b/libretro-common/streams/interface_stream.c
@@ -421,6 +421,16 @@ void intfstream_putc(intfstream_internal_t *intf, int c)
}
}
+uint32_t intfstream_get_chd_pregap(intfstream_internal_t *intf)
+{
+#ifdef HAVE_CHD
+ if (intf->type == INTFSTREAM_CHD)
+ return chdstream_get_pregap(intf->chd.fp);
+#endif
+
+ return 0;
+}
+
intfstream_t* intfstream_open_file(const char *path,
unsigned mode, unsigned hints)
{
diff --git a/menu/cbs/menu_cbs_sublabel.c b/menu/cbs/menu_cbs_sublabel.c
index 555cc5e028..73630c9ffe 100644
--- a/menu/cbs/menu_cbs_sublabel.c
+++ b/menu/cbs/menu_cbs_sublabel.c
@@ -129,6 +129,7 @@ default_sublabel_macro(action_bind_sublabel_logging_settings_list, MENU_
default_sublabel_macro(action_bind_sublabel_user_interface_settings_list, MENU_ENUM_SUBLABEL_USER_INTERFACE_SETTINGS)
default_sublabel_macro(action_bind_sublabel_ai_service_settings_list, MENU_ENUM_SUBLABEL_AI_SERVICE_SETTINGS)
default_sublabel_macro(action_bind_sublabel_ai_service_mode, MENU_ENUM_SUBLABEL_AI_SERVICE_MODE)
+default_sublabel_macro(action_bind_sublabel_ai_service_pause, MENU_ENUM_SUBLABEL_AI_SERVICE_PAUSE)
default_sublabel_macro(action_bind_sublabel_ai_service_target_lang, MENU_ENUM_SUBLABEL_AI_SERVICE_TARGET_LANG)
default_sublabel_macro(action_bind_sublabel_ai_service_source_lang, MENU_ENUM_SUBLABEL_AI_SERVICE_SOURCE_LANG)
default_sublabel_macro(action_bind_sublabel_ai_service_url, MENU_ENUM_SUBLABEL_AI_SERVICE_URL)
@@ -197,6 +198,8 @@ default_sublabel_macro(action_bind_sublabel_netplay_settings, MENU_
default_sublabel_macro(action_bind_sublabel_user_bind_settings, MENU_ENUM_SUBLABEL_INPUT_USER_BINDS)
default_sublabel_macro(action_bind_sublabel_input_hotkey_settings, MENU_ENUM_SUBLABEL_INPUT_HOTKEY_BINDS)
default_sublabel_macro(action_bind_sublabel_materialui_icons_enable, MENU_ENUM_SUBLABEL_MATERIALUI_ICONS_ENABLE)
+default_sublabel_macro(action_bind_sublabel_materialui_optimize_landscape_layout, MENU_ENUM_SUBLABEL_MATERIALUI_OPTIMIZE_LANDSCAPE_LAYOUT)
+default_sublabel_macro(action_bind_sublabel_materialui_auto_rotate_nav_bar, MENU_ENUM_SUBLABEL_MATERIALUI_AUTO_ROTATE_NAV_BAR)
default_sublabel_macro(action_bind_sublabel_add_content_list, MENU_ENUM_SUBLABEL_ADD_CONTENT_LIST)
default_sublabel_macro(action_bind_sublabel_video_frame_delay, MENU_ENUM_SUBLABEL_VIDEO_FRAME_DELAY)
default_sublabel_macro(action_bind_sublabel_video_shader_delay, MENU_ENUM_SUBLABEL_VIDEO_SHADER_DELAY)
@@ -217,6 +220,7 @@ default_sublabel_macro(action_bind_sublabel_config_save_on_exit, MENU_
default_sublabel_macro(action_bind_sublabel_configuration_settings_list, MENU_ENUM_SUBLABEL_CONFIGURATION_SETTINGS)
default_sublabel_macro(action_bind_sublabel_configurations_list_list, MENU_ENUM_SUBLABEL_CONFIGURATIONS_LIST)
default_sublabel_macro(action_bind_sublabel_video_shared_context, MENU_ENUM_SUBLABEL_VIDEO_SHARED_CONTEXT)
+default_sublabel_macro(action_bind_sublabel_driver_switch_enable, MENU_ENUM_SUBLABEL_DRIVER_SWITCH_ENABLE)
default_sublabel_macro(action_bind_sublabel_audio_latency, MENU_ENUM_SUBLABEL_AUDIO_LATENCY)
default_sublabel_macro(action_bind_sublabel_audio_rate_control_delta, MENU_ENUM_SUBLABEL_AUDIO_RATE_CONTROL_DELTA)
default_sublabel_macro(action_bind_sublabel_audio_mute, MENU_ENUM_SUBLABEL_AUDIO_MUTE)
@@ -484,6 +488,7 @@ default_sublabel_macro(action_bind_sublabel_xmb_shadows_enable,
default_sublabel_macro(action_bind_sublabel_xmb_vertical_thumbnails, MENU_ENUM_SUBLABEL_XMB_VERTICAL_THUMBNAILS)
default_sublabel_macro(action_bind_sublabel_menu_xmb_thumbnail_scale_factor, MENU_ENUM_SUBLABEL_MENU_XMB_THUMBNAIL_SCALE_FACTOR)
default_sublabel_macro(action_bind_sublabel_menu_color_theme, MENU_ENUM_SUBLABEL_MATERIALUI_MENU_COLOR_THEME)
+default_sublabel_macro(action_bind_sublabel_materialui_menu_transition_animation, MENU_ENUM_SUBLABEL_MATERIALUI_MENU_TRANSITION_ANIMATION)
default_sublabel_macro(action_bind_sublabel_ozone_menu_color_theme, MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME)
default_sublabel_macro(action_bind_sublabel_ozone_collapse_sidebar, MENU_ENUM_SUBLABEL_OZONE_COLLAPSE_SIDEBAR)
default_sublabel_macro(action_bind_sublabel_ozone_truncate_playlist_name, MENU_ENUM_SUBLABEL_OZONE_TRUNCATE_PLAYLIST_NAME)
@@ -1247,6 +1252,12 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
case MENU_ENUM_LABEL_MATERIALUI_ICONS_ENABLE:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_materialui_icons_enable);
break;
+ case MENU_ENUM_LABEL_MATERIALUI_OPTIMIZE_LANDSCAPE_LAYOUT:
+ BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_materialui_optimize_landscape_layout);
+ break;
+ case MENU_ENUM_LABEL_MATERIALUI_AUTO_ROTATE_NAV_BAR:
+ BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_materialui_auto_rotate_nav_bar);
+ break;
case MENU_ENUM_LABEL_VIDEO_VIEWPORT_CUSTOM_HEIGHT:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_viewport_custom_height);
break;
@@ -1707,6 +1718,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
case MENU_ENUM_LABEL_XMB_MENU_COLOR_THEME:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_menu_color_theme);
break;
+ case MENU_ENUM_LABEL_MATERIALUI_MENU_TRANSITION_ANIMATION:
+ BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_materialui_menu_transition_animation);
+ break;
case MENU_ENUM_LABEL_XMB_SHADOWS_ENABLE:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_xmb_shadows_enable);
break;
@@ -2467,6 +2481,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
case MENU_ENUM_LABEL_AUDIO_LATENCY:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_audio_latency);
break;
+ case MENU_ENUM_LABEL_DRIVER_SWITCH_ENABLE:
+ BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_driver_switch_enable);
+ break;
case MENU_ENUM_LABEL_VIDEO_SHARED_CONTEXT:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_shared_context);
break;
@@ -2714,6 +2731,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
case MENU_ENUM_LABEL_AI_SERVICE_MODE:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_ai_service_mode);
break;
+ case MENU_ENUM_LABEL_AI_SERVICE_PAUSE:
+ BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_ai_service_pause);
+ break;
case MENU_ENUM_LABEL_AI_SERVICE_ENABLE:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_ai_service_enable);
break;
diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c
index 82532be020..9003ae5344 100644
--- a/menu/drivers/materialui.c
+++ b/menu/drivers/materialui.c
@@ -45,6 +45,7 @@
#include "../menu_input.h"
#include "../widgets/menu_osk.h"
+#include "../widgets/menu_filebrowser.h"
#include "../../core_info.h"
#include "../../core.h"
@@ -53,6 +54,7 @@
#include "../../verbosity.h"
#include "../../tasks/tasks_internal.h"
+#include "../../paths.h"
#include "../../file_path_special.h"
#include "../../dynamic.h"
@@ -63,6 +65,16 @@
* 22 inch, 96 DPI display */
#define MUI_DIP_BASE_UNIT_SIZE 212.0f
+/* Spacer for left scrolling ticker text */
+#if defined(__APPLE__)
+/* UTF-8 support is currently broken on Apple devices... */
+#define MUI_TICKER_SPACER " | "
+#else
+/*
+ * UCN equivalent: "\u2003\u2022\u2003" */
+#define MUI_TICKER_SPACER "\xE2\x80\x83\xE2\x80\xA2\xE2\x80\x83"
+#endif
+
/* ==============================
* Colour Themes START
* ============================== */
@@ -95,11 +107,13 @@ typedef struct
uint32_t nav_bar_icon_passive;
uint32_t nav_bar_icon_disabled;
/* Misc. colours */
- uint32_t shadow;
+ uint32_t header_shadow;
+ uint32_t landscape_border_shadow;
uint32_t scrollbar;
uint32_t divider;
uint32_t screen_fade;
- float shadow_opacity;
+ float header_shadow_opacity;
+ float landscape_border_shadow_opacity;
float screen_fade_opacity;
} materialui_theme_t;
@@ -129,11 +143,13 @@ static const materialui_theme_t materialui_theme_blue = {
0x9ea7aa, /* nav_bar_icon_passive */
0xffffff, /* nav_bar_icon_disabled */
/* Misc. colours */
- 0x000000, /* shadow */
+ 0x000000, /* header_shadow */
+ 0x000000, /* landscape_border_shadow */
0x0069c0, /* scrollbar */
0x9ea7aa, /* divider */
0x000000, /* screen_fade */
- 0.3f, /* shadow_opacity */
+ 0.3f, /* header_shadow_opacity */
+ 0.35f, /* landscape_border_shadow_opacity */
0.75f /* screen_fade_opacity */
};
@@ -163,11 +179,13 @@ static const materialui_theme_t materialui_theme_blue_grey = {
0xaeaeae, /* nav_bar_icon_passive */
0xffffff, /* nav_bar_icon_disabled */
/* Misc. colours */
- 0x000000, /* shadow */
+ 0x000000, /* header_shadow */
+ 0x000000, /* landscape_border_shadow */
0x34515e, /* scrollbar */
0xc2c2c2, /* divider */
0x000000, /* screen_fade */
- 0.3f, /* shadow_opacity */
+ 0.3f, /* header_shadow_opacity */
+ 0.35f, /* landscape_border_shadow_opacity */
0.75f /* screen_fade_opacity */
};
@@ -193,15 +211,17 @@ static const materialui_theme_t materialui_theme_dark_blue = {
0x4b636e, /* list_switch_off */
0x607d8b, /* list_switch_off_background */
/* Navigation bar icon colours */
- 0x90caf9, /* nav_bar_icon_active */
- 0x8eacbb, /* nav_bar_icon_passive */
+ 0x6ec6ff, /* nav_bar_icon_active */
+ 0xA5B4BB, /* nav_bar_icon_passive */
0x000000, /* nav_bar_icon_disabled */
/* Misc. colours */
- 0x000000, /* shadow */
+ 0x000000, /* header_shadow */
+ 0x3B3B3B, /* landscape_border_shadow */
0x90caf9, /* scrollbar */
0x607d8b, /* divider */
0x000000, /* screen_fade */
- 0.3f, /* shadow_opacity */
+ 0.3f, /* header_shadow_opacity */
+ 0.45f, /* landscape_border_shadow_opacity */
0.75f /* screen_fade_opacity */
};
@@ -231,11 +251,13 @@ static const materialui_theme_t materialui_theme_green = {
0xaeaeae, /* nav_bar_icon_passive */
0xffffff, /* nav_bar_icon_disabled */
/* Misc. colours */
- 0x000000, /* shadow */
+ 0x000000, /* header_shadow */
+ 0x000000, /* landscape_border_shadow */
0x087f23, /* scrollbar */
0xaabb97, /* divider */
0x000000, /* screen_fade */
- 0.3f, /* shadow_opacity */
+ 0.3f, /* header_shadow_opacity */
+ 0.35f, /* landscape_border_shadow_opacity */
0.75f /* screen_fade_opacity */
};
@@ -265,11 +287,13 @@ static const materialui_theme_t materialui_theme_red = {
0xaeaeae, /* nav_bar_icon_passive */
0xffffff, /* nav_bar_icon_disabled */
/* Misc. colours */
- 0x000000, /* shadow */
+ 0x000000, /* header_shadow */
+ 0x000000, /* landscape_border_shadow */
0xba000d, /* scrollbar */
0xbf5f82, /* divider */
0x000000, /* screen_fade */
- 0.3f, /* shadow_opacity */
+ 0.3f, /* header_shadow_opacity */
+ 0.35f, /* landscape_border_shadow_opacity */
0.75f /* screen_fade_opacity */
};
@@ -299,11 +323,13 @@ static const materialui_theme_t materialui_theme_yellow = {
0xaeaeae, /* nav_bar_icon_passive */
0xFFFFFF, /* nav_bar_icon_disabled */
/* Misc. colours */
- 0x000000, /* shadow */
+ 0x000000, /* header_shadow */
+ 0x000000, /* landscape_border_shadow */
0xc6a700, /* scrollbar */
0xcbba83, /* divider */
0x000000, /* screen_fade */
- 0.3f, /* shadow_opacity */
+ 0.3f, /* header_shadow_opacity */
+ 0.35f, /* landscape_border_shadow_opacity */
0.75f /* screen_fade_opacity */
};
@@ -333,11 +359,13 @@ static const materialui_theme_t materialui_theme_nvidia_shield = {
0x558b2f, /* nav_bar_icon_passive */
0x000000, /* nav_bar_icon_disabled */
/* Misc. colours */
- 0x000000, /* shadow */
+ 0x000000, /* header_shadow */
+ 0x3B3B3B, /* landscape_border_shadow */
0x7ab547, /* scrollbar */
0x498515, /* divider */
0x000000, /* screen_fade */
- 0.3f, /* shadow_opacity */
+ 0.3f, /* header_shadow_opacity */
+ 0.45f, /* landscape_border_shadow_opacity */
0.75f /* screen_fade_opacity */
};
@@ -353,7 +381,7 @@ static const materialui_theme_t materialui_theme_materialui = {
0x3700B3, /* sys_bar_background */
0x6200ee, /* title_bar_background */
0xF5F5F6, /* list_background */
- 0xF2E7FE, /* list_highlighted_background */
+ 0xe7b9ff, /* list_highlighted_background */
0xE1E2E1, /* nav_bar_background */
0xFFFFFF, /* surface_background */
/* List icon colours */
@@ -367,11 +395,13 @@ static const materialui_theme_t materialui_theme_materialui = {
0xaeaeae, /* nav_bar_icon_passive */
0xffffff, /* nav_bar_icon_disabled */
/* Misc. colours */
- 0x000000, /* shadow */
+ 0x000000, /* header_shadow */
+ 0x000000, /* landscape_border_shadow */
0x018786, /* scrollbar */
0x018786, /* divider */
0x000000, /* screen_fade */
- 0.3f, /* shadow_opacity */
+ 0.3f, /* header_shadow_opacity */
+ 0.35f, /* landscape_border_shadow_opacity */
0.75f /* screen_fade_opacity */
};
@@ -401,11 +431,13 @@ static const materialui_theme_t materialui_theme_materialui_dark = {
0x00a895, /* nav_bar_icon_passive */
0x000000, /* nav_bar_icon_disabled */
/* Misc. colours */
- 0x000000, /* shadow */
+ 0x000000, /* header_shadow */
+ 0x3B3B3B, /* landscape_border_shadow */
0xC89EFC, /* scrollbar */
0x03DAC6, /* divider */
0x000000, /* screen_fade */
- 0.3f, /* shadow_opacity */
+ 0.3f, /* header_shadow_opacity */
+ 0.45f, /* landscape_border_shadow_opacity */
0.75f /* screen_fade_opacity */
};
@@ -435,11 +467,409 @@ static const materialui_theme_t materialui_theme_ozone_dark = {
0xDADADA, /* nav_bar_icon_passive */
0x242424, /* nav_bar_icon_disabled */
/* Misc. colours */
- 0x000000, /* shadow */
- 0xFFFFFF, /* scrollbar */
+ 0x000000, /* header_shadow */
+ 0x000000, /* landscape_border_shadow */
+ 0x9F9F9F, /* scrollbar */
0xFFFFFF, /* divider */
0x000000, /* screen_fade */
- 0.3f, /* shadow_opacity */
+ 0.3f, /* header_shadow_opacity */
+ 0.45f, /* landscape_border_shadow_opacity */
+ 0.75f /* screen_fade_opacity */
+};
+
+static const materialui_theme_t materialui_theme_nord = {
+ /* Text (& small inline icon) colours */
+ 0xD8DEE9, /* on_sys_bar */
+ 0xECEFF4, /* on_header */
+ 0xD8DEE9, /* list_text */
+ 0xECEFF4, /* list_text_highlighted */
+ 0x93E5CC, /* list_hint_text */
+ 0x93E5CC, /* list_hint_text_highlighted */
+ /* Background colours */
+ 0x000000, /* sys_bar_background */
+ 0x4C566A, /* title_bar_background */
+ 0x2E3440, /* list_background */
+ 0x3f444f, /* list_highlighted_background */
+ 0x3B4252, /* nav_bar_background */
+ 0x3B4252, /* surface_background */
+ /* List icon colours */
+ 0xD8DEE9, /* list_icon */
+ 0xA3BE8C, /* list_switch_on */
+ 0x7E946D, /* list_switch_on_background */
+ 0xB48EAD, /* list_switch_off */
+ 0x8A6D84, /* list_switch_off_background */
+ /* Navigation bar icon colours */
+ 0xD8DEE9, /* nav_bar_icon_active */
+ 0x81A1C1, /* nav_bar_icon_passive */
+ 0x242A33, /* nav_bar_icon_disabled */
+ /* Misc. colours */
+ 0x000000, /* header_shadow */
+ 0x000000, /* landscape_border_shadow */
+ 0xA0A5AD, /* scrollbar */
+ 0x81A1C1, /* divider */
+ 0x000000, /* screen_fade */
+ 0.4f, /* header_shadow_opacity */
+ 0.45f, /* landscape_border_shadow_opacity */
+ 0.75f /* screen_fade_opacity */
+};
+
+static const materialui_theme_t materialui_theme_gruvbox_dark = {
+ /* Text (& small inline icon) colours */
+ 0xA89984, /* on_sys_bar */
+ 0xFBF1C7, /* on_header */
+ 0xEBDBB2, /* list_text */
+ 0xFBF1C7, /* list_text_highlighted */
+ 0xD79921, /* list_hint_text */
+ 0xFABD2F, /* list_hint_text_highlighted */
+ /* Background colours */
+ 0x000000, /* sys_bar_background */
+ 0x504945, /* title_bar_background */
+ 0x282828, /* list_background */
+ 0x3C3836, /* list_highlighted_background */
+ 0x1D2021, /* nav_bar_background */
+ 0x32302F, /* surface_background */
+ /* List icon colours */
+ 0xA89984, /* list_icon */
+ 0xB8BB26, /* list_switch_on */
+ 0x98971A, /* list_switch_on_background */
+ 0xFB4934, /* list_switch_off */
+ 0xCC241D, /* list_switch_off_background */
+ /* Navigation bar icon colours */
+ 0xBF9137, /* nav_bar_icon_active */
+ 0xA89984, /* nav_bar_icon_passive */
+ 0x3C3836, /* nav_bar_icon_disabled */
+ /* Misc. colours */
+ 0x000000, /* header_shadow */
+ 0x000000, /* landscape_border_shadow */
+ 0x7C6F64, /* scrollbar */
+ 0xD5C4A1, /* divider */
+ 0x000000, /* screen_fade */
+ 0.4f, /* header_shadow_opacity */
+ 0.45f, /* landscape_border_shadow_opacity */
+ 0.75f /* screen_fade_opacity */
+};
+
+static const materialui_theme_t materialui_theme_solarized_dark = {
+ /* Text (& small inline icon) colours */
+ 0x657B83, /* on_sys_bar */
+ 0x93A1A1, /* on_header */
+ 0x839496, /* list_text */
+ 0x93A1A1, /* list_text_highlighted */
+ 0x2AA198, /* list_hint_text */
+ 0x2AA198, /* list_hint_text_highlighted */
+ /* Background colours */
+ 0x000000, /* sys_bar_background */
+ 0x053542, /* title_bar_background */
+ 0x002B36, /* list_background */
+ 0x073642, /* list_highlighted_background */
+ 0x003541, /* nav_bar_background */
+ 0x073642, /* surface_background */
+ /* List icon colours */
+ 0x657B83, /* list_icon */
+ 0x859900, /* list_switch_on */
+ 0x667500, /* list_switch_on_background */
+ 0x6C71C4, /* list_switch_off */
+ 0x565A9C, /* list_switch_off_background */
+ /* Navigation bar icon colours */
+ 0x2AA198, /* nav_bar_icon_active */
+ 0x839496, /* nav_bar_icon_passive */
+ 0x00222B, /* nav_bar_icon_disabled */
+ /* Misc. colours */
+ 0x000000, /* header_shadow */
+ 0x000000, /* landscape_border_shadow */
+ 0x586E75, /* scrollbar */
+ 0x2AA198, /* divider */
+ 0x000000, /* screen_fade */
+ 0.4f, /* header_shadow_opacity */
+ 0.45f, /* landscape_border_shadow_opacity */
+ 0.75f /* screen_fade_opacity */
+};
+
+static const materialui_theme_t materialui_theme_cutie_blue = {
+ /* Text (& small inline icon) colours */
+ 0xC4C4C4, /* on_sys_bar */
+ 0xFFFFFF, /* on_header */
+ 0xFFFFFF, /* list_text */
+ 0xFFFFFF, /* list_text_highlighted */
+ 0xDADADA, /* list_hint_text */
+ 0xEEEEEE, /* list_hint_text_highlighted */
+ /* Background colours */
+ 0x000000, /* sys_bar_background */
+ 0x353535, /* title_bar_background */
+ 0x191919, /* list_background */
+ 0x3399FF, /* list_highlighted_background */
+ 0x282828, /* nav_bar_background */
+ 0x333333, /* surface_background */
+ /* List icon colours */
+ 0xFFFFFF, /* list_icon */
+ 0x3399FF, /* list_switch_on */
+ 0x454545, /* list_switch_on_background */
+ 0x454545, /* list_switch_off */
+ 0x414141, /* list_switch_off_background */
+ /* Navigation bar icon colours */
+ 0x3399FF, /* nav_bar_icon_active */
+ 0xDADADA, /* nav_bar_icon_passive */
+ 0x000000, /* nav_bar_icon_disabled */
+ /* Misc. colours */
+ 0x000000, /* header_shadow */
+ 0x000000, /* landscape_border_shadow */
+ 0x727272, /* scrollbar */
+ 0x727272, /* divider */
+ 0x000000, /* screen_fade */
+ 0.3f, /* header_shadow_opacity */
+ 0.45f, /* landscape_border_shadow_opacity */
+ 0.75f /* screen_fade_opacity */
+};
+
+static const materialui_theme_t materialui_theme_cutie_cyan = {
+ /* Text (& small inline icon) colours */
+ 0xC4C4C4, /* on_sys_bar */
+ 0xFFFFFF, /* on_header */
+ 0xFFFFFF, /* list_text */
+ 0xFFFFFF, /* list_text_highlighted */
+ 0xDADADA, /* list_hint_text */
+ 0xEEEEEE, /* list_hint_text_highlighted */
+ /* Background colours */
+ 0x000000, /* sys_bar_background */
+ 0x353535, /* title_bar_background */
+ 0x191919, /* list_background */
+ 0x39859A, /* list_highlighted_background */
+ 0x282828, /* nav_bar_background */
+ 0x333333, /* surface_background */
+ /* List icon colours */
+ 0xFFFFFF, /* list_icon */
+ 0x39859A, /* list_switch_on */
+ 0x454545, /* list_switch_on_background */
+ 0x454545, /* list_switch_off */
+ 0x414141, /* list_switch_off_background */
+ /* Navigation bar icon colours */
+ 0x39859A, /* nav_bar_icon_active */
+ 0xDADADA, /* nav_bar_icon_passive */
+ 0x000000, /* nav_bar_icon_disabled */
+ /* Misc. colours */
+ 0x000000, /* header_shadow */
+ 0x000000, /* landscape_border_shadow */
+ 0x727272, /* scrollbar */
+ 0x727272, /* divider */
+ 0x000000, /* screen_fade */
+ 0.3f, /* header_shadow_opacity */
+ 0.45f, /* landscape_border_shadow_opacity */
+ 0.75f /* screen_fade_opacity */
+};
+
+static const materialui_theme_t materialui_theme_cutie_green = {
+ /* Text (& small inline icon) colours */
+ 0xC4C4C4, /* on_sys_bar */
+ 0xFFFFFF, /* on_header */
+ 0xFFFFFF, /* list_text */
+ 0xFFFFFF, /* list_text_highlighted */
+ 0xDADADA, /* list_hint_text */
+ 0xEEEEEE, /* list_hint_text_highlighted */
+ /* Background colours */
+ 0x000000, /* sys_bar_background */
+ 0x353535, /* title_bar_background */
+ 0x191919, /* list_background */
+ 0x23A367, /* list_highlighted_background */
+ 0x282828, /* nav_bar_background */
+ 0x333333, /* surface_background */
+ /* List icon colours */
+ 0xFFFFFF, /* list_icon */
+ 0x23A367, /* list_switch_on */
+ 0x454545, /* list_switch_on_background */
+ 0x454545, /* list_switch_off */
+ 0x414141, /* list_switch_off_background */
+ /* Navigation bar icon colours */
+ 0x23A367, /* nav_bar_icon_active */
+ 0xDADADA, /* nav_bar_icon_passive */
+ 0x000000, /* nav_bar_icon_disabled */
+ /* Misc. colours */
+ 0x000000, /* header_shadow */
+ 0x000000, /* landscape_border_shadow */
+ 0x727272, /* scrollbar */
+ 0x727272, /* divider */
+ 0x000000, /* screen_fade */
+ 0.3f, /* header_shadow_opacity */
+ 0.45f, /* landscape_border_shadow_opacity */
+ 0.75f /* screen_fade_opacity */
+};
+
+static const materialui_theme_t materialui_theme_cutie_orange = {
+ /* Text (& small inline icon) colours */
+ 0xC4C4C4, /* on_sys_bar */
+ 0xFFFFFF, /* on_header */
+ 0xFFFFFF, /* list_text */
+ 0xFFFFFF, /* list_text_highlighted */
+ 0xDADADA, /* list_hint_text */
+ 0xEEEEEE, /* list_hint_text_highlighted */
+ /* Background colours */
+ 0x000000, /* sys_bar_background */
+ 0x353535, /* title_bar_background */
+ 0x191919, /* list_background */
+ 0xCE6E1F, /* list_highlighted_background */
+ 0x282828, /* nav_bar_background */
+ 0x333333, /* surface_background */
+ /* List icon colours */
+ 0xFFFFFF, /* list_icon */
+ 0xCE6E1F, /* list_switch_on */
+ 0x454545, /* list_switch_on_background */
+ 0x454545, /* list_switch_off */
+ 0x414141, /* list_switch_off_background */
+ /* Navigation bar icon colours */
+ 0xCE6E1F, /* nav_bar_icon_active */
+ 0xDADADA, /* nav_bar_icon_passive */
+ 0x000000, /* nav_bar_icon_disabled */
+ /* Misc. colours */
+ 0x000000, /* header_shadow */
+ 0x000000, /* landscape_border_shadow */
+ 0x727272, /* scrollbar */
+ 0x727272, /* divider */
+ 0x000000, /* screen_fade */
+ 0.3f, /* header_shadow_opacity */
+ 0.45f, /* landscape_border_shadow_opacity */
+ 0.75f /* screen_fade_opacity */
+};
+
+static const materialui_theme_t materialui_theme_cutie_pink = {
+ /* Text (& small inline icon) colours */
+ 0xC4C4C4, /* on_sys_bar */
+ 0xFFFFFF, /* on_header */
+ 0xFFFFFF, /* list_text */
+ 0xFFFFFF, /* list_text_highlighted */
+ 0xDADADA, /* list_hint_text */
+ 0xEEEEEE, /* list_hint_text_highlighted */
+ /* Background colours */
+ 0x000000, /* sys_bar_background */
+ 0x353535, /* title_bar_background */
+ 0x191919, /* list_background */
+ 0xD16FD8, /* list_highlighted_background */
+ 0x282828, /* nav_bar_background */
+ 0x333333, /* surface_background */
+ /* List icon colours */
+ 0xFFFFFF, /* list_icon */
+ 0xD16FD8, /* list_switch_on */
+ 0x454545, /* list_switch_on_background */
+ 0x454545, /* list_switch_off */
+ 0x414141, /* list_switch_off_background */
+ /* Navigation bar icon colours */
+ 0xD16FD8, /* nav_bar_icon_active */
+ 0xDADADA, /* nav_bar_icon_passive */
+ 0x000000, /* nav_bar_icon_disabled */
+ /* Misc. colours */
+ 0x000000, /* header_shadow */
+ 0x000000, /* landscape_border_shadow */
+ 0x727272, /* scrollbar */
+ 0x727272, /* divider */
+ 0x000000, /* screen_fade */
+ 0.3f, /* header_shadow_opacity */
+ 0.45f, /* landscape_border_shadow_opacity */
+ 0.75f /* screen_fade_opacity */
+};
+
+static const materialui_theme_t materialui_theme_cutie_purple = {
+ /* Text (& small inline icon) colours */
+ 0xC4C4C4, /* on_sys_bar */
+ 0xFFFFFF, /* on_header */
+ 0xFFFFFF, /* list_text */
+ 0xFFFFFF, /* list_text_highlighted */
+ 0xDADADA, /* list_hint_text */
+ 0xEEEEEE, /* list_hint_text_highlighted */
+ /* Background colours */
+ 0x000000, /* sys_bar_background */
+ 0x353535, /* title_bar_background */
+ 0x191919, /* list_background */
+ 0x814FFF, /* list_highlighted_background */
+ 0x282828, /* nav_bar_background */
+ 0x333333, /* surface_background */
+ /* List icon colours */
+ 0xFFFFFF, /* list_icon */
+ 0x814FFF, /* list_switch_on */
+ 0x454545, /* list_switch_on_background */
+ 0x454545, /* list_switch_off */
+ 0x414141, /* list_switch_off_background */
+ /* Navigation bar icon colours */
+ 0x814FFF, /* nav_bar_icon_active */
+ 0xDADADA, /* nav_bar_icon_passive */
+ 0x000000, /* nav_bar_icon_disabled */
+ /* Misc. colours */
+ 0x000000, /* header_shadow */
+ 0x000000, /* landscape_border_shadow */
+ 0x727272, /* scrollbar */
+ 0x727272, /* divider */
+ 0x000000, /* screen_fade */
+ 0.3f, /* header_shadow_opacity */
+ 0.45f, /* landscape_border_shadow_opacity */
+ 0.75f /* screen_fade_opacity */
+};
+
+static const materialui_theme_t materialui_theme_cutie_red = {
+ /* Text (& small inline icon) colours */
+ 0xC4C4C4, /* on_sys_bar */
+ 0xFFFFFF, /* on_header */
+ 0xFFFFFF, /* list_text */
+ 0xFFFFFF, /* list_text_highlighted */
+ 0xDADADA, /* list_hint_text */
+ 0xEEEEEE, /* list_hint_text_highlighted */
+ /* Background colours */
+ 0x000000, /* sys_bar_background */
+ 0x353535, /* title_bar_background */
+ 0x191919, /* list_background */
+ 0xCB1619, /* list_highlighted_background */
+ 0x282828, /* nav_bar_background */
+ 0x333333, /* surface_background */
+ /* List icon colours */
+ 0xFFFFFF, /* list_icon */
+ 0xCB1619, /* list_switch_on */
+ 0x454545, /* list_switch_on_background */
+ 0x454545, /* list_switch_off */
+ 0x414141, /* list_switch_off_background */
+ /* Navigation bar icon colours */
+ 0xCB1619, /* nav_bar_icon_active */
+ 0xDADADA, /* nav_bar_icon_passive */
+ 0x000000, /* nav_bar_icon_disabled */
+ /* Misc. colours */
+ 0x000000, /* header_shadow */
+ 0x000000, /* landscape_border_shadow */
+ 0x727272, /* scrollbar */
+ 0x727272, /* divider */
+ 0x000000, /* screen_fade */
+ 0.3f, /* header_shadow_opacity */
+ 0.45f, /* landscape_border_shadow_opacity */
+ 0.75f /* screen_fade_opacity */
+};
+
+static const materialui_theme_t materialui_theme_virtual_boy = {
+ /* Text (& small inline icon) colours */
+ 0xE60000, /* on_sys_bar */
+ 0xF00000, /* on_header */
+ 0xE60000, /* list_text */
+ 0xF00000, /* list_text_highlighted */
+ 0xE60000, /* list_hint_text */
+ 0xF00000, /* list_hint_text_highlighted */
+ /* Background colours */
+ 0x000000, /* sys_bar_background */
+ 0x350000, /* title_bar_background */
+ 0x000000, /* list_background */
+ 0x400000, /* list_highlighted_background */
+ 0x350000, /* nav_bar_background */
+ 0x400000, /* surface_background */
+ /* List icon colours */
+ 0xE60000, /* list_icon */
+ 0xE60000, /* list_switch_on */
+ 0x6B0000, /* list_switch_on_background */
+ 0x6B0000, /* list_switch_off */
+ 0x6B0000, /* list_switch_off_background */
+ /* Navigation bar icon colours */
+ 0xF00000, /* nav_bar_icon_active */
+ 0xA10000, /* nav_bar_icon_passive */
+ 0x300000, /* nav_bar_icon_disabled */
+ /* Misc. colours */
+ 0x000000, /* header_shadow */
+ 0x000000, /* landscape_border_shadow */
+ 0xA10000, /* scrollbar */
+ 0xE60000, /* divider */
+ 0x000000, /* screen_fade */
+ 0.3f, /* header_shadow_opacity */
+ 0.45f, /* landscape_border_shadow_opacity */
0.75f /* screen_fade_opacity */
};
@@ -473,10 +903,13 @@ typedef struct
float nav_bar_icon_passive[16];
float nav_bar_icon_disabled[16];
/* Misc. colours */
- float shadow[16];
+ float header_shadow[16];
+ float landscape_border_shadow_left[16];
+ float landscape_border_shadow_right[16];
float scrollbar[16];
float divider[16];
float screen_fade[16];
+ float landscape_border_shadow_opacity;
} materialui_colors_t;
/* ==============================
@@ -503,6 +936,8 @@ enum
MUI_TEXTURE_TAB_MAIN,
MUI_TEXTURE_TAB_PLAYLISTS,
MUI_TEXTURE_TAB_SETTINGS,
+ MUI_TEXTURE_TAB_BACK,
+ MUI_TEXTURE_TAB_RESUME,
MUI_TEXTURE_KEY,
MUI_TEXTURE_KEY_HOVER,
MUI_TEXTURE_FOLDER,
@@ -563,15 +998,75 @@ enum
MUI_TEXTURE_LAST
};
-/* The menu has 3 tabs */
-enum
+/* Maximum number of menu tabs that can be shown on
+ * the navigation bar */
+#define MUI_NAV_BAR_NUM_MENU_TABS_MAX 3
+
+/* Number of action tabs shown on the navigation bar */
+#define MUI_NAV_BAR_NUM_ACTION_TABS 2
+
+/* Defines the various types of menu tab that can
+ * be shown on the navigation bar */
+enum materialui_nav_bar_menu_tab_type
{
- MUI_SYSTEM_TAB_MAIN = 0,
- MUI_SYSTEM_TAB_PLAYLISTS,
- MUI_SYSTEM_TAB_SETTINGS
+ MUI_NAV_BAR_MENU_TAB_NONE = 0,
+ MUI_NAV_BAR_MENU_TAB_MAIN,
+ MUI_NAV_BAR_MENU_TAB_PLAYLISTS,
+ MUI_NAV_BAR_MENU_TAB_SETTINGS
};
-#define MUI_SYSTEM_TAB_END MUI_SYSTEM_TAB_SETTINGS
+/* Defines the various types of action tab that can
+ * be shown on the navigation bar */
+enum materialui_nav_bar_action_tab_type
+{
+ MUI_NAV_BAR_ACTION_TAB_NONE = 0,
+ MUI_NAV_BAR_ACTION_TAB_BACK,
+ MUI_NAV_BAR_ACTION_TAB_RESUME
+};
+
+/* Defines navigation bar draw locations
+ * Note: Only bottom and right are supported
+ * at present... */
+enum materialui_nav_bar_location_type
+{
+ MUI_NAV_BAR_LOCATION_BOTTOM = 0,
+ MUI_NAV_BAR_LOCATION_RIGHT
+};
+
+/* This structure holds all runtime parameters
+ * associated with a navigation bar menu tab */
+typedef struct
+{
+ enum materialui_nav_bar_menu_tab_type type;
+ unsigned texture_index;
+ bool active;
+} materialui_nav_bar_menu_tab_t;
+
+/* This structure holds all runtime parameters
+ * associated with a navigation bar action tab */
+typedef struct
+{
+ enum materialui_nav_bar_action_tab_type type;
+ unsigned texture_index;
+ bool enabled;
+} materialui_nav_bar_action_tab_t;
+
+/* This structure holds all runtime parameters for
+ * the navigation bar */
+typedef struct
+{
+ unsigned width;
+ unsigned divider_width;
+ unsigned selection_marker_width;
+ unsigned num_menu_tabs;
+ unsigned active_menu_tab_index;
+ unsigned last_active_menu_tab_index;
+ bool menu_navigation_wrapped;
+ enum materialui_nav_bar_location_type location;
+ materialui_nav_bar_action_tab_t back_tab;
+ materialui_nav_bar_action_tab_t resume_tab;
+ materialui_nav_bar_menu_tab_t menu_tabs[MUI_NAV_BAR_NUM_MENU_TABS_MAX];
+} materialui_nav_bar_t;
/* Defines all possible entry value types
* > Note: These are not necessarily 'values',
@@ -611,13 +1106,31 @@ typedef struct
int timedate_width;
} materialui_sys_bar_cache_t;
+/* Animation defines */
+#define MUI_ANIM_DURATION_SCROLL 166.66667f
+#define MUI_ANIM_DURATION_SCROLL_RESET 83.333333f
+/* According to Material UI specifications, animations
+ * that affect a large portion of the screen should
+ * have a duration of between 250ms and 300ms. This
+ * should therefore be the value used for menu
+ * transitions - but even 250ms feels too slow...
+ * We compromise by setting a time of 200ms, which
+ * is the same as the 'short press' duration.
+ * This is reasonably fast, without making slide
+ * animations too 'jarring'... */
+#define MUI_ANIM_DURATION_MENU_TRANSITION 200.0f
+
typedef struct materialui_handle
{
+ bool is_portrait;
bool need_compute;
bool mouse_show;
bool is_playlist;
bool is_file_list;
bool is_dropdown_list;
+ bool last_optimize_landscape_layout;
+ bool last_auto_rotate_nav_bar;
+ bool menu_stack_flushed;
unsigned last_width;
unsigned last_height;
@@ -628,19 +1141,23 @@ typedef struct materialui_handle
unsigned sys_bar_height;
unsigned title_bar_height;
- unsigned tabs_height;
- unsigned shadow_height;
+ unsigned header_shadow_height;
unsigned scrollbar_width;
- unsigned divider_width;
unsigned icon_size;
unsigned sys_bar_icon_size;
unsigned margin;
unsigned sys_bar_margin;
- unsigned categories_active_idx;
- unsigned categories_active_idx_old;
+ unsigned landscape_entry_margin;
- size_t categories_selection_ptr;
- size_t categories_selection_ptr_old;
+ /* Navigation bar parameters
+ * Note: layout width and height are convenience
+ * variables used when determining usable width/
+ * height for all other menu elements - e.g. when
+ * navigation bar is at the bottom of the screen
+ * nav_bar_screen_width is zero */
+ unsigned nav_bar_layout_width;
+ unsigned nav_bar_layout_height;
+ materialui_nav_bar_t nav_bar;
size_t first_onscreen_entry;
size_t last_onscreen_entry;
@@ -651,7 +1168,7 @@ typedef struct materialui_handle
float textures_arrow_alpha;
float categories_x_pos;
- char *box_message;
+ char msgbox[1024];
char menu_title[255];
@@ -696,6 +1213,11 @@ typedef struct materialui_handle
unsigned touch_feedback_selection;
float touch_feedback_alpha;
+ /* Menu transition animation parameters */
+ float transition_alpha;
+ float transition_x_offset;
+ size_t last_stack_size;
+
} materialui_handle_t;
static const materialui_theme_t *materialui_get_theme(enum materialui_color_theme color_theme)
@@ -722,6 +1244,28 @@ static const materialui_theme_t *materialui_get_theme(enum materialui_color_them
return &materialui_theme_materialui_dark;
case MATERIALUI_THEME_OZONE_DARK:
return &materialui_theme_ozone_dark;
+ case MATERIALUI_THEME_NORD:
+ return &materialui_theme_nord;
+ case MATERIALUI_THEME_GRUVBOX_DARK:
+ return &materialui_theme_gruvbox_dark;
+ case MATERIALUI_THEME_SOLARIZED_DARK:
+ return &materialui_theme_solarized_dark;
+ case MATERIALUI_THEME_CUTIE_BLUE:
+ return &materialui_theme_cutie_blue;
+ case MATERIALUI_THEME_CUTIE_CYAN:
+ return &materialui_theme_cutie_cyan;
+ case MATERIALUI_THEME_CUTIE_GREEN:
+ return &materialui_theme_cutie_green;
+ case MATERIALUI_THEME_CUTIE_ORANGE:
+ return &materialui_theme_cutie_orange;
+ case MATERIALUI_THEME_CUTIE_PINK:
+ return &materialui_theme_cutie_pink;
+ case MATERIALUI_THEME_CUTIE_PURPLE:
+ return &materialui_theme_cutie_purple;
+ case MATERIALUI_THEME_CUTIE_RED:
+ return &materialui_theme_cutie_red;
+ case MATERIALUI_THEME_VIRTUAL_BOY:
+ return &materialui_theme_virtual_boy;
default:
break;
}
@@ -802,8 +1346,14 @@ static void materialui_prepare_colors(
/* > Misc. colours */
hex32_to_rgba_normalized(
- current_theme->shadow,
- mui->colors.shadow, 0.0f);
+ current_theme->header_shadow,
+ mui->colors.header_shadow, 0.0f);
+ hex32_to_rgba_normalized(
+ current_theme->landscape_border_shadow,
+ mui->colors.landscape_border_shadow_left, 0.0f);
+ hex32_to_rgba_normalized(
+ current_theme->landscape_border_shadow,
+ mui->colors.landscape_border_shadow_right, 0.0f);
hex32_to_rgba_normalized(
current_theme->scrollbar,
mui->colors.scrollbar, 1.0f);
@@ -814,10 +1364,15 @@ static void materialui_prepare_colors(
current_theme->screen_fade,
mui->colors.screen_fade, current_theme->screen_fade_opacity);
- /* Shadow colour requires special handling
- * (since it is a gradient) */
- mui->colors.shadow[11] = current_theme->shadow_opacity;
- mui->colors.shadow[15] = current_theme->shadow_opacity;
+ /* Shadow colours require special handling
+ * (since they are gradients) */
+ mui->colors.header_shadow[11] = current_theme->header_shadow_opacity;
+ mui->colors.header_shadow[15] = current_theme->header_shadow_opacity;
+ mui->colors.landscape_border_shadow_left[7] = current_theme->landscape_border_shadow_opacity;
+ mui->colors.landscape_border_shadow_left[15] = current_theme->landscape_border_shadow_opacity;
+ mui->colors.landscape_border_shadow_right[3] = current_theme->landscape_border_shadow_opacity;
+ mui->colors.landscape_border_shadow_right[11] = current_theme->landscape_border_shadow_opacity;
+ mui->colors.landscape_border_shadow_opacity = current_theme->landscape_border_shadow_opacity;
}
static const char *materialui_texture_path(unsigned id)
@@ -840,6 +1395,10 @@ static const char *materialui_texture_path(unsigned id)
return "playlists_tab_passive.png";
case MUI_TEXTURE_TAB_SETTINGS:
return "settings_tab_passive.png";
+ case MUI_TEXTURE_TAB_BACK:
+ return "back_tab.png";
+ case MUI_TEXTURE_TAB_RESUME:
+ return "resume_tab.png";
case MUI_TEXTURE_KEY:
return "key.png";
case MUI_TEXTURE_KEY_HOVER:
@@ -1020,120 +1579,6 @@ static void materialui_draw_icon(
menu_display_blend_end(video_info);
}
-/* Draw a single tab */
-static void materialui_draw_tab(
- materialui_handle_t *mui,
- video_frame_info_t *video_info,
- unsigned i,
- unsigned width, unsigned height)
-{
- unsigned tab_icon = 0;
- bool is_active = false;
-
- switch (i)
- {
- case MUI_SYSTEM_TAB_MAIN:
- tab_icon = MUI_TEXTURE_TAB_MAIN;
- if (i == mui->categories_selection_ptr)
- is_active = true;
- break;
- case MUI_SYSTEM_TAB_PLAYLISTS:
- tab_icon = MUI_TEXTURE_TAB_PLAYLISTS;
- if (i == mui->categories_selection_ptr)
- is_active = true;
- break;
- case MUI_SYSTEM_TAB_SETTINGS:
- tab_icon = MUI_TEXTURE_TAB_SETTINGS;
- if (i == mui->categories_selection_ptr)
- is_active = true;
- break;
- }
-
- materialui_draw_icon(video_info,
- mui->icon_size,
- mui->textures.list[tab_icon],
- width / (MUI_SYSTEM_TAB_END+1) * (i+0.5) - mui->icon_size/2,
- height - mui->tabs_height,
- width,
- height,
- 0,
- 1,
- is_active ? mui->colors.nav_bar_icon_active : mui->colors.nav_bar_icon_passive);
-}
-
-/* Draw the tabs background */
-static void materialui_draw_tab_begin(
- materialui_handle_t *mui,
- video_frame_info_t *video_info,
- unsigned width, unsigned height)
-{
- /* tabs background */
- menu_display_draw_quad(
- video_info,
- 0, height - mui->tabs_height, width,
- mui->tabs_height,
- width, height,
- mui->colors.nav_bar_background);
-
- /* tabs divider */
- menu_display_draw_quad(
- video_info,
- 0, height - mui->tabs_height, width,
- mui->divider_width,
- width, height,
- mui->colors.divider);
-}
-
-/* Draw the active tab */
-static void materialui_draw_tab_end(materialui_handle_t *mui,
- video_frame_info_t *video_info,
- unsigned width, unsigned height)
-{
- /* active tab marker */
- unsigned tab_width = width / (MUI_SYSTEM_TAB_END+1);
-
- menu_display_draw_quad(
- video_info,
- (int)(mui->categories_selection_ptr * tab_width),
- height - (mui->tabs_height / 16),
- tab_width,
- mui->tabs_height / 16,
- width, height,
- mui->colors.nav_bar_icon_active);
-}
-
-/* Draw the scrollbar */
-static void materialui_draw_scrollbar(materialui_handle_t *mui,
- video_frame_info_t *video_info,
- unsigned width, unsigned height)
-{
- unsigned header_height = menu_display_get_header_height();
- float total_height = height - header_height - mui->tabs_height;
- float scrollbar_margin = mui->scrollbar_width;
- float scrollbar_height = total_height / (mui->content_height / total_height);
- float y = total_height * mui->scroll_y / mui->content_height;
-
- /* apply a margin on the top and bottom of the scrollbar for aestetic */
- scrollbar_height -= scrollbar_margin * 2;
- y += scrollbar_margin;
-
- if (mui->content_height < total_height)
- return;
-
- /* if the scrollbar is extremely short, display it as a square */
- if (scrollbar_height <= mui->scrollbar_width)
- scrollbar_height = mui->scrollbar_width;
-
- menu_display_draw_quad(
- video_info,
- width - mui->scrollbar_width - scrollbar_margin,
- header_height + y,
- mui->scrollbar_width,
- scrollbar_height,
- width, height,
- mui->colors.scrollbar);
-}
-
static void materialui_get_message(void *data, const char *message)
{
materialui_handle_t *mui = (materialui_handle_t*)data;
@@ -1141,50 +1586,60 @@ static void materialui_get_message(void *data, const char *message)
if (!mui || !message || !*message)
return;
- if (!string_is_empty(mui->box_message))
- free(mui->box_message);
- mui->box_message = strdup(message);
+ mui->msgbox[0] = '\0';
+
+ if (!string_is_empty(message))
+ strlcpy(mui->msgbox, message, sizeof(mui->msgbox));
}
-/* Draw the modal */
static void materialui_render_messagebox(materialui_handle_t *mui,
- video_frame_info_t *video_info, const char *message)
+ video_frame_info_t *video_info, int y_centre, const char *message)
{
- unsigned i, y_position;
- int x, y, longest = 0, longest_width = 0;
+ unsigned i;
+ int x = 0;
+ int y = 0;
+ int longest_width = 0;
+ size_t longest_len = 0;
unsigned width = video_info->width;
unsigned height = video_info->height;
struct string_list *list = NULL;
+ /* Sanity check */
if (!mui || !mui->font_data.list.font)
goto end;
- list = (struct string_list*)
- string_split(message, "\n");
+ /* Split message into lines */
+ list = string_split(message, "\n");
if (!list || list->elems == 0)
goto end;
- y_position = height / 2;
- if (menu_input_dialog_get_display_kb())
- y_position = height / 4;
+ /* Get coordinates of message box centre */
+ x = width / 2;
+ y = (int)(y_centre - (list->size - 1) * (mui->font_data.list.font_height / 2));
- x = width / 2;
- y = (int)(y_position - (list->size-1) * mui->font_data.list.font_height / 2);
+ /* TODO/FIXME: Reduce text scale if width or height
+ * are too large to fit on screen */
- /* find the longest line width */
+ /* Find the longest line width */
for (i = 0; i < list->size; i++)
{
- const char *msg = list->elems[i].data;
- int len = (int)utf8len(msg);
- if (len > longest)
+ const char *line = list->elems[i].data;
+
+ if (!string_is_empty(line))
{
- longest = len;
- longest_width = font_driver_get_message_width(
- mui->font_data.list.font, msg, (unsigned)strlen(msg), 1);
+ size_t len = utf8len(line);
+
+ if (len > longest_len)
+ {
+ longest_len = len;
+ longest_width = font_driver_get_message_width(
+ mui->font_data.list.font, line, (unsigned)strlen(line), 1);
+ }
}
}
+ /* Draw message box background */
menu_display_draw_quad(
video_info,
x - longest_width / 2.0 - mui->margin * 2.0,
@@ -1195,27 +1650,20 @@ static void materialui_render_messagebox(materialui_handle_t *mui,
height,
mui->colors.surface_background);
- /* print each line */
+ /* Print each line of the message */
for (i = 0; i < list->size; i++)
{
- const char *msg = list->elems[i].data;
- if (msg)
+ const char *line = list->elems[i].data;
+
+ if (!string_is_empty(line))
menu_display_draw_text(
- mui->font_data.list.font, msg,
+ mui->font_data.list.font, line,
x - longest_width/2.0,
y + i * mui->font_data.list.font_height + mui->font_data.list.font_height / 3,
width, height, mui->colors.list_text,
- TEXT_ALIGN_LEFT, 1.0f, false, 0, false);
+ TEXT_ALIGN_LEFT, 1.0f, false, 0, true);
}
- if (menu_input_dialog_get_display_kb())
- menu_display_draw_keyboard(
- mui->textures.list[MUI_TEXTURE_KEY_HOVER],
- mui->font_data.list.font,
- video_info,
- menu_event_get_osk_grid(), menu_event_get_osk_ptr(),
- 0xffffffff);
-
end:
if (list)
string_list_free(list);
@@ -1237,7 +1685,7 @@ static void materialui_compute_entries_box(materialui_handle_t* mui, int width,
int height)
{
unsigned i;
- size_t usable_width = width - (mui->margin * 2);
+ size_t usable_width = width - (mui->margin * 2) - (mui->landscape_entry_margin * 2) - mui->nav_bar_layout_width;
file_list_t *list = menu_entries_get_selection_buf_ptr(0);
float sum = 0;
size_t entries_end = menu_entries_get_size();
@@ -1298,10 +1746,6 @@ static float materialui_get_scroll(materialui_handle_t *mui)
if (!mui)
return 0;
- /* Whenever we perform a 'manual' scroll, scroll
- * acceleration must be reset */
- menu_input_set_pointer_y_accel(0.0f);
-
video_driver_get_size(&width, &height);
half = height / 2;
@@ -1332,6 +1776,7 @@ static void materialui_render(void *data,
unsigned width, unsigned height,
bool is_idle)
{
+ settings_t *settings = config_get_ptr();
materialui_handle_t *mui = (materialui_handle_t*)data;
int header_height = menu_display_get_header_height();
size_t entries_end = menu_entries_get_size();
@@ -1341,30 +1786,32 @@ static void materialui_render(void *data,
int bottom;
float scale_factor;
- if (!mui || !list)
+ if (!settings || !mui || !list)
return;
- /* Check whether menu scale factor has changed */
+ /* Check whether screen dimensions, menu scale
+ * factor or layout optimisation settings have changed */
scale_factor = menu_display_get_dpi_scale(width, height);
- if (scale_factor != mui->last_scale_factor)
- {
- mui->dip_base_unit_size = scale_factor * MUI_DIP_BASE_UNIT_SIZE;
- mui->last_scale_factor = scale_factor;
- materialui_context_reset_internal(mui, video_driver_is_threaded());
- }
- /* Check whether screen dimensions have changed
- * (this can happen without changing the scaling factor,
- * and it affects list spacing) */
- if ((width != mui->last_width) || (height != mui->last_height))
+ if ((scale_factor != mui->last_scale_factor) ||
+ (width != mui->last_width) ||
+ (height != mui->last_height) ||
+ (settings->bools.menu_materialui_optimize_landscape_layout != mui->last_optimize_landscape_layout) ||
+ (settings->bools.menu_materialui_auto_rotate_nav_bar != mui->last_auto_rotate_nav_bar))
{
- mui->need_compute = true;
- mui->last_width = width;
- mui->last_height = height;
+ mui->dip_base_unit_size = scale_factor * MUI_DIP_BASE_UNIT_SIZE;
+ mui->last_scale_factor = scale_factor;
+ mui->last_width = width;
+ mui->last_height = height;
+ mui->last_optimize_landscape_layout = settings->bools.menu_materialui_optimize_landscape_layout;
+ mui->last_auto_rotate_nav_bar = settings->bools.menu_materialui_auto_rotate_nav_bar;
+ materialui_context_reset_internal(mui, video_driver_is_threaded());
}
if (mui->need_compute)
{
+ menu_animation_ctx_tag tag = (uintptr_t)&mui->scroll_y;
+
if (mui->font_data.list.font && mui->font_data.hint.font)
materialui_compute_entries_box(mui, width, height);
@@ -1374,8 +1821,15 @@ static void materialui_render(void *data,
* But we can't do this until materialui_compute_entries_box()
* has been called, so we delay it until here, when
* mui->need_compute is acted upon. */
- mui->scroll_y = materialui_get_scroll(mui);
+ /* Kill any existing scroll animation */
+ menu_animation_kill_by_tag(&tag);
+
+ /* Reset scroll accleration */
+ menu_input_set_pointer_y_accel(0.0f);
+
+ /* Get new scroll position */
+ mui->scroll_y = materialui_get_scroll(mui);
mui->need_compute = false;
}
@@ -1396,11 +1850,11 @@ static void materialui_render(void *data,
if (mui->scroll_y < 0.0f)
mui->scroll_y = 0.0f;
- bottom = mui->content_height - height + header_height + mui->tabs_height;
+ bottom = mui->content_height - height + header_height + mui->nav_bar_layout_height;
if (mui->scroll_y > (float)bottom)
mui->scroll_y = (float)bottom;
- if (mui->content_height < (height - header_height - mui->tabs_height))
+ if (mui->content_height < (height - header_height - mui->nav_bar_layout_height))
mui->scroll_y = 0.0f;
/* Loop over all entries */
@@ -1433,35 +1887,42 @@ static void materialui_render(void *data,
/* Track pointer input, if required */
if (first_entry_found && (mui->pointer.type != MENU_POINTER_DISABLED))
{
+ int16_t pointer_x = mui->pointer.x;
int16_t pointer_y = mui->pointer.y;
- if ((pointer_y > entry_y) &&
- (pointer_y < (entry_y + node->line_height)))
+ if ((pointer_x > mui->landscape_entry_margin) &&
+ (pointer_x < width - mui->landscape_entry_margin - mui->nav_bar_layout_width) &&
+ (pointer_y >= header_height) &&
+ (pointer_y <= height - mui->nav_bar_layout_height))
{
- menu_input_set_pointer_selection(i);
-
- /* The first time this runs following a pointer
- * down event, we have to cache the current
- * pointer selection value in order to correctly
- * handle touch feedback animations */
- if (mui->touch_feedback_cache_selection)
+ if ((pointer_y > entry_y) &&
+ (pointer_y < (entry_y + node->line_height)))
{
- mui->touch_feedback_selection = i;
- mui->touch_feedback_cache_selection = false;
- }
+ menu_input_set_pointer_selection(i);
- /* If pointer is pressed, stationary, and has been pressed
- * for at least MENU_INPUT_PRESS_TIME_SHORT ms, select current
- * entry */
- if (mui->pointer.pressed &&
- !mui->pointer.dragged &&
- (mui->pointer.press_duration >= MENU_INPUT_PRESS_TIME_SHORT))
- menu_navigation_set_selection(i);
+ /* The first time this runs following a pointer
+ * down event, we have to cache the current
+ * pointer selection value in order to correctly
+ * handle touch feedback animations */
+ if (mui->touch_feedback_cache_selection)
+ {
+ mui->touch_feedback_selection = i;
+ mui->touch_feedback_cache_selection = false;
+ }
+
+ /* If pointer is pressed, stationary, and has been pressed
+ * for at least MENU_INPUT_PRESS_TIME_SHORT ms, select current
+ * entry */
+ if (mui->pointer.pressed &&
+ !mui->pointer.dragged &&
+ (mui->pointer.press_duration >= MENU_INPUT_PRESS_TIME_SHORT))
+ menu_navigation_set_selection(i);
+ }
}
}
/* Check whether this is the last onscreen entry */
- if (entry_y > ((int)height - (int)mui->tabs_height))
+ if (entry_y > ((int)height - (int)mui->nav_bar_layout_height))
{
/* Current entry is off screen - get index
* of previous entry */
@@ -1541,7 +2002,7 @@ static void materialui_render_switch_icon(
materialui_handle_t *mui,
video_frame_info_t *video_info,
float y,
- unsigned width, unsigned height,
+ unsigned width, unsigned height, int x_offset,
bool on)
{
unsigned switch_texture_index = on ?
@@ -1550,13 +2011,16 @@ static void materialui_render_switch_icon(
mui->colors.list_switch_on_background : mui->colors.list_switch_off_background;
float *switch_color = on ?
mui->colors.list_switch_on : mui->colors.list_switch_off;
+ int x =
+ x_offset + (int)width - (int)mui->margin - (int)mui->landscape_entry_margin -
+ (int)mui->nav_bar_layout_width - (int)mui->icon_size;
/* Draw background */
if (mui->textures.list[MUI_TEXTURE_SWITCH_BG])
materialui_draw_icon(video_info,
mui->icon_size,
mui->textures.list[MUI_TEXTURE_SWITCH_BG],
- width - mui->margin - mui->icon_size,
+ x,
y,
width,
height,
@@ -1569,7 +2033,7 @@ static void materialui_render_switch_icon(
materialui_draw_icon(video_info,
mui->icon_size,
mui->textures.list[switch_texture_index],
- width - mui->margin - mui->icon_size,
+ x,
y,
width,
height,
@@ -1587,21 +2051,24 @@ static void materialui_render_menu_entry(
bool entry_selected,
bool touch_feedback_active,
unsigned header_height,
- unsigned width, unsigned height)
+ unsigned width, unsigned height,
+ int x_offset)
{
const char *entry_value = NULL;
const char *entry_label = NULL;
const char *entry_sublabel = NULL;
unsigned entry_type = 0;
enum materialui_entry_value_type entry_value_type = MUI_ENTRY_VALUE_NONE;
- size_t entry_value_width = 0;
+ unsigned entry_value_width = 0;
enum msg_file_type entry_file_type = FILE_TYPE_NONE;
int entry_y = header_height - mui->scroll_y + node->y;
- int entry_margin = mui->margin;
- int usable_width = width - (mui->margin * 2);
+ int entry_margin = (int)mui->margin + (int)mui->landscape_entry_margin;
+ int usable_width =
+ (int)width - (int)(mui->margin * 2) - (int)(mui->landscape_entry_margin * 2) - (int)mui->nav_bar_layout_width;
int label_y = 0;
int value_icon_y = 0;
uintptr_t icon_texture = 0;
+ bool draw_text_outside = (x_offset != 0);
/* Initial ticker configuration
* > Note: ticker is only used for labels/values,
@@ -1622,7 +2089,7 @@ static void materialui_render_menu_entry(
entry_file_type = msg_hash_to_file_type(msg_hash_calculate(entry_value));
entry_value_type = materialui_get_entry_value_type(
- mui, entry_value, entry->checked, entry_type, entry_file_type);
+ mui, entry_value, entry->checked, entry_type, entry_file_type);
/* Draw entry icon
* > Has to be done first, since it affects the left
@@ -1656,7 +2123,7 @@ static void materialui_render_menu_entry(
materialui_draw_icon(video_info,
mui->icon_size,
(uintptr_t)icon_texture,
- 0,
+ x_offset + (int)mui->landscape_entry_margin,
entry_y + (node->line_height / 2.0f) - (mui->icon_size / 2.0f),
width,
height,
@@ -1673,6 +2140,9 @@ static void materialui_render_menu_entry(
* affects y offset positions */
if (!string_is_empty(entry_sublabel))
{
+ int sublabel_y =
+ entry_y + (int)(mui->dip_base_unit_size / 5.0f) +
+ (int)mui->font_data.list.font_height;
char wrapped_sublabel[MENU_SUBLABEL_MAX_LENGTH];
wrapped_sublabel[0] = '\0';
@@ -1682,19 +2152,24 @@ static void materialui_render_menu_entry(
(int)(usable_width / mui->font_data.hint.glyph_width),
true, 0);
- /* Draw sublabel string */
+ /* Draw sublabel string
+ * > Note: We must allow text to be drawn off-screen
+ * if the current y position is negative, otherwise topmost
+ * entries with very long sublabels may get 'clipped' too
+ * early as they are scrolled upwards beyond the top edge
+ * of the screen */
menu_display_draw_text(mui->font_data.hint.font, wrapped_sublabel,
- entry_margin,
- entry_y + (mui->dip_base_unit_size / 5) + mui->font_data.list.font_height,
+ x_offset + entry_margin,
+ sublabel_y,
width, height,
(entry_selected || touch_feedback_active) ?
mui->colors.list_hint_text_highlighted : mui->colors.list_hint_text,
- TEXT_ALIGN_LEFT, 1.0f, false, 0, false);
+ TEXT_ALIGN_LEFT, 1.0f, false, 0, draw_text_outside || (sublabel_y < 0));
/* If we have a sublabel, entry label y position has a
* fixed vertical offset */
- label_y = entry_y + (mui->dip_base_unit_size / 5.0f);
- value_icon_y = entry_y + (mui->dip_base_unit_size / 6.0f) - (mui->icon_size / 2.0f);
+ label_y = entry_y + (int)(mui->dip_base_unit_size / 5.0f);
+ value_icon_y = entry_y + (int)((mui->dip_base_unit_size / 6.0f) - (mui->icon_size / 2.0f));
}
else
{
@@ -1704,8 +2179,8 @@ static void materialui_render_menu_entry(
* so we can't do this accurately - but as a general
* rule of thumb, the descender of a font is at least
* 20% of it's height - so we just add (font_height / 5) */
- label_y = entry_y + (node->line_height / 2.0f) + (mui->font_data.list.font_height / 5.0f);
- value_icon_y = entry_y + (node->line_height / 2.0f) - (mui->icon_size / 2.0f);
+ label_y = entry_y + (int)((node->line_height / 2.0f) + (mui->font_data.list.font_height / 5.0f));
+ value_icon_y = entry_y + (int)((node->line_height / 2.0f) - (mui->icon_size / 2.0f));
}
/* Draw entry value */
@@ -1713,66 +2188,86 @@ static void materialui_render_menu_entry(
{
case MUI_ENTRY_VALUE_TEXT:
{
- int value_x_offset = 0;
- size_t entry_value_len = utf8len(entry_value);
- size_t entry_value_len_max =
- (size_t)(((usable_width / 2) - mui->margin) / mui->font_data.list.glyph_width);
+ int value_x_offset = 0;
+ unsigned entry_value_width_max = (usable_width / 2) - mui->margin;
char value_buf[255];
value_buf[0] = '\0';
- /* Limit length of value string */
- entry_value_len = (entry_value_len > entry_value_len_max) ?
- entry_value_len_max : entry_value_len;
-
- /* Get effective width of value string
- * > Approximate value - too expensive to use
- * font_driver_get_message_width() here... */
- entry_value_width = (entry_value_len + 1) * mui->font_data.list.glyph_width;
-
/* Apply ticker */
if (mui->use_smooth_ticker)
{
- mui->ticker_smooth.field_width = entry_value_width;
+ mui->ticker_smooth.field_width = entry_value_width_max;
mui->ticker_smooth.src_str = entry_value;
mui->ticker_smooth.dst_str = value_buf;
mui->ticker_smooth.dst_str_len = sizeof(value_buf);
- /* Value text is right aligned, so have to offset x
- * by the 'padding' width at the end of the ticker string... */
if (menu_animation_ticker_smooth(&mui->ticker_smooth))
- value_x_offset = (mui->ticker_x_offset + mui->ticker_str_width) - entry_value_width;
+ {
+ /* If ticker is active, then value text is effectively
+ * entry_value_width_max pixels wide... */
+ entry_value_width = entry_value_width_max;
+ /* ...and since value text is right aligned, have to
+ * offset x position by the 'padding' width at the
+ * end of the ticker string */
+ value_x_offset =
+ (int)(mui->ticker_x_offset + mui->ticker_str_width) -
+ (int)entry_value_width_max;
+ }
+ /* If ticker is inactive, width of value string is
+ * exactly mui->ticker_str_width pixels, and no x offset
+ * is required */
+ else
+ entry_value_width = mui->ticker_str_width;
}
else
{
+ size_t entry_value_len = utf8len(entry_value);
+ size_t entry_value_len_max =
+ (size_t)(entry_value_width_max / mui->font_data.list.glyph_width);
+
+ /* Limit length of value string */
+ entry_value_len_max = (entry_value_len_max > 0) ?
+ entry_value_len_max - 1 : entry_value_len_max;
+ entry_value_len = (entry_value_len > entry_value_len_max) ?
+ entry_value_len_max : entry_value_len;
+
mui->ticker.s = value_buf;
mui->ticker.len = entry_value_len;
mui->ticker.str = entry_value;
menu_animation_ticker(&mui->ticker);
+
+ /* Get effective width of value string
+ * > Approximate value - only the smooth ticker
+ * returns the actual width in pixels, and any
+ * platform too slow to run the smooth ticker
+ * won't appreciate the overheads of using
+ * font_driver_get_message_width() here... */
+ entry_value_width = (entry_value_len + 1) * mui->font_data.list.glyph_width;
}
/* Draw value string */
menu_display_draw_text(mui->font_data.list.font, value_buf,
- value_x_offset + width - mui->margin,
+ x_offset + value_x_offset + (int)width - (int)mui->margin - (int)mui->landscape_entry_margin - (int)mui->nav_bar_layout_width,
label_y,
width, height,
(entry_selected || touch_feedback_active) ?
mui->colors.list_text_highlighted : mui->colors.list_text,
- TEXT_ALIGN_RIGHT, 1.0f, false, 0, false);
+ TEXT_ALIGN_RIGHT, 1.0f, false, 0, draw_text_outside);
}
break;
case MUI_ENTRY_VALUE_SWITCH_ON:
{
materialui_render_switch_icon(
- mui, video_info, value_icon_y, width, height, true);
+ mui, video_info, value_icon_y, width, height, x_offset, true);
entry_value_width = mui->icon_size;
}
break;
case MUI_ENTRY_VALUE_SWITCH_OFF:
{
materialui_render_switch_icon(
- mui, video_info, value_icon_y, width, height, false);
+ mui, video_info, value_icon_y, width, height, x_offset, false);
entry_value_width = mui->icon_size;
}
break;
@@ -1783,7 +2278,7 @@ static void materialui_render_menu_entry(
materialui_draw_icon(video_info,
mui->icon_size,
mui->textures.list[MUI_TEXTURE_CHECKMARK],
- width - mui->margin - mui->icon_size,
+ x_offset + (int)width - (int)mui->margin - (int)mui->landscape_entry_margin - (int)mui->nav_bar_layout_width - (int)mui->icon_size,
value_icon_y,
width,
height,
@@ -1811,7 +2306,7 @@ static void materialui_render_menu_entry(
* > If a value is present, need additional padding
* between label and value */
label_width = (entry_value_width > 0) ?
- label_width - (entry_value_width + mui->margin) : label_width;
+ label_width - (int)(entry_value_width + mui->margin) : label_width;
if (label_width > 0)
{
@@ -1838,21 +2333,63 @@ static void materialui_render_menu_entry(
/* Draw label string */
menu_display_draw_text(mui->font_data.list.font, label_buf,
- mui->ticker_x_offset + entry_margin,
+ x_offset + (int)mui->ticker_x_offset + entry_margin,
label_y,
width, height,
(entry_selected || touch_feedback_active) ?
mui->colors.list_text_highlighted : mui->colors.list_text,
- TEXT_ALIGN_LEFT, 1.0f, false, 0, false);
+ TEXT_ALIGN_LEFT, 1.0f, false, 0, draw_text_outside);
}
}
}
+static void materialui_render_scrollbar(
+ materialui_handle_t *mui,
+ video_frame_info_t *video_info,
+ unsigned header_height,
+ unsigned width, unsigned height,
+ int x_offset)
+{
+ float total_height = height - header_height - mui->nav_bar_layout_height;
+ float scrollbar_margin = mui->scrollbar_width;
+ float scrollbar_height = total_height / (mui->content_height / total_height);
+ float y = total_height * mui->scroll_y / mui->content_height;
+ int x;
+
+ if (mui->content_height < total_height)
+ return;
+
+ /* Apply a margin on the top and bottom of the scrollbar
+ * for aesthetic reasons */
+ scrollbar_height -= scrollbar_margin * 2;
+ y += scrollbar_margin;
+
+ /* If the scrollbar is extremely short, display
+ * it as a square */
+ if (scrollbar_height < mui->scrollbar_width)
+ scrollbar_height = mui->scrollbar_width;
+
+ /* Get x position */
+ x = x_offset + (int)width - (int)mui->scrollbar_width - (int)scrollbar_margin - (int)mui->nav_bar_layout_width;
+ if (mui->landscape_entry_margin > mui->margin)
+ x -= (int)mui->landscape_entry_margin - (int)mui->margin;
+
+ menu_display_draw_quad(
+ video_info,
+ x,
+ header_height + y,
+ mui->scrollbar_width,
+ scrollbar_height,
+ width, height,
+ mui->colors.scrollbar);
+}
+
/* Draws current menu list */
static void materialui_render_menu_list(
materialui_handle_t *mui,
video_frame_info_t *video_info,
- unsigned width, unsigned height)
+ unsigned width, unsigned height,
+ int x_offset)
{
size_t i;
size_t first_entry;
@@ -1899,18 +2436,27 @@ static void materialui_render_menu_list(
touch_feedback_active,
header_height,
width,
- height);
+ height,
+ x_offset);
}
+
+ /* Draw scrollbar */
+ materialui_render_scrollbar(
+ mui, video_info, header_height, width, height, x_offset);
}
static size_t materialui_list_get_size(void *data, enum menu_list_type type)
{
+ materialui_handle_t *mui = (materialui_handle_t*)data;
+
switch (type)
{
case MENU_LIST_PLAIN:
return menu_entries_get_stack_size(0);
case MENU_LIST_TABS:
- return MUI_SYSTEM_TAB_END;
+ if (!mui)
+ return 0;
+ return (size_t)mui->nav_bar.num_menu_tabs;
default:
break;
}
@@ -1923,7 +2469,7 @@ static void materialui_render_background(materialui_handle_t *mui, video_frame_i
menu_display_ctx_draw_t draw;
bool add_opacity = false;
float opacity_override = 1.0f;
- float color_white[16] = {
+ float draw_color[16] = {
1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f,
@@ -1944,11 +2490,11 @@ static void materialui_render_background(materialui_handle_t *mui, video_frame_i
draw.pipeline.id = 0;
draw.pipeline.active = false;
draw.pipeline.backend_data = NULL;
+ draw.color = draw_color;
if (mui->textures.bg && !video_info->libretro_running)
{
draw.texture = mui->textures.bg;
- draw.color = color_white;
/* We are showing a wallpaper - set opacity
* override to menu_wallpaper_opacity */
@@ -1958,7 +2504,9 @@ static void materialui_render_background(materialui_handle_t *mui, video_frame_i
else
{
draw.texture = menu_display_white_texture;
- draw.color = mui->colors.list_background;
+
+ /* Copy 'list_background' colour to draw colour */
+ memcpy(draw_color, mui->colors.list_background, sizeof(draw_color));
/* We are not showing a wallpaper - if content
* is running, set opacity override to
@@ -1970,21 +2518,6 @@ static void materialui_render_background(materialui_handle_t *mui, video_frame_i
}
}
- /* If content is not running, have to call menu_display_clear_color()
- * (have no idea if or why this is necessary, but it was
- * included in the original code...) */
- if (!video_info->libretro_running)
- {
- menu_display_ctx_clearcolor_t clearcolor;
-
- clearcolor.r = mui->colors.list_background[0];
- clearcolor.g = mui->colors.list_background[1];
- clearcolor.b = mui->colors.list_background[2];
- clearcolor.a = mui->colors.list_background[3];
-
- menu_display_clear_color(&clearcolor, video_info);
- }
-
/* Draw background */
menu_display_blend_begin(video_info);
menu_display_draw_bg(&draw, video_info, add_opacity, opacity_override);
@@ -1992,9 +2525,92 @@ static void materialui_render_background(materialui_handle_t *mui, video_frame_i
menu_display_blend_end(video_info);
}
+static void materialui_render_landscape_border(
+ materialui_handle_t *mui, video_frame_info_t *video_info,
+ unsigned width, unsigned height, unsigned header_height, int x_offset)
+{
+ if (mui->landscape_entry_margin > mui->margin)
+ {
+ unsigned border_width = mui->landscape_entry_margin - mui->margin;
+ unsigned border_height = height - header_height - mui->nav_bar_layout_height;
+ int left_x = x_offset;
+ int right_x =
+ x_offset + (int)width - (int)mui->landscape_entry_margin +
+ (int)mui->margin - (int)mui->nav_bar_layout_width;
+ int y = (int)header_height;
+
+ /* Draw left border */
+ menu_display_draw_quad(
+ video_info,
+ left_x,
+ y,
+ border_width,
+ border_height,
+ width,
+ height,
+ mui->colors.landscape_border_shadow_left);
+
+ /* Draw right border */
+ menu_display_draw_quad(
+ video_info,
+ right_x,
+ y,
+ border_width,
+ border_height,
+ width,
+ height,
+ mui->colors.landscape_border_shadow_right);
+ }
+}
+
+static void materialui_render_selection_highlight(
+ materialui_handle_t *mui, video_frame_info_t *video_info,
+ unsigned width, unsigned height, unsigned header_height, int x_offset,
+ size_t selection, float *color)
+{
+ /* Only draw highlight if selection is onscreen */
+ if ((selection >= mui->first_onscreen_entry) &&
+ (selection <= mui->last_onscreen_entry))
+ {
+ file_list_t *list = NULL;
+ materialui_node_t *node = NULL;
+ int highlight_x_offset = x_offset;
+ int highlight_width = (int)width - (int)mui->nav_bar_layout_width;
+
+ /* If landscape optimisations are enabled/active,
+ * adjust highlight layout */
+ if (mui->landscape_entry_margin > 0)
+ {
+ highlight_x_offset += (int)mui->landscape_entry_margin - (int)mui->margin;
+ highlight_width -= (int)(2 * mui->landscape_entry_margin) - (int)(2 * mui->margin);
+ highlight_width = (highlight_width < 0) ? 0 : highlight_width;
+ }
+
+ list = menu_entries_get_selection_buf_ptr(0);
+
+ if (!list)
+ return;
+
+ node = (materialui_node_t*)file_list_get_userdata_at_offset(list, selection);
+
+ if (!node)
+ return;
+
+ menu_display_draw_quad(
+ video_info,
+ highlight_x_offset,
+ header_height - mui->scroll_y + node->y,
+ (unsigned)highlight_width,
+ node->line_height,
+ width,
+ height,
+ color);
+ }
+}
+
static void materialui_render_entry_touch_feedback(
materialui_handle_t *mui, video_frame_info_t *video_info,
- unsigned width, unsigned height, unsigned header_height,
+ unsigned width, unsigned height, unsigned header_height, int x_offset,
size_t current_selection)
{
/* Check whether pointer is currently
@@ -2004,9 +2620,14 @@ static void materialui_render_entry_touch_feedback(
/* If pointer is held and stationary, need to check
* that current pointer selection is valid
* i.e. item touched at pointer down event may
- * have changed due to scroll acceleration */
+ * have changed due to scroll acceleration, or
+ * user may be touching the header/navigation bar */
if (pointer_active)
- pointer_active = (mui->touch_feedback_selection == menu_input_get_pointer_selection());
+ pointer_active = (mui->touch_feedback_selection == menu_input_get_pointer_selection()) &&
+ (mui->pointer.x > mui->landscape_entry_margin) &&
+ (mui->pointer.x < width - mui->landscape_entry_margin - mui->nav_bar_layout_width) &&
+ (mui->pointer.y >= header_height) &&
+ (mui->pointer.y <= height - mui->nav_bar_layout_height);
/* Touch feedback highlight fades in when pointer
* is held stationary on a menu entry */
@@ -2039,51 +2660,35 @@ static void materialui_render_entry_touch_feedback(
* touch feedback highlight */
if (mui->touch_feedback_alpha > 0.0f)
{
- /* Sanity check */
- if ((mui->touch_feedback_selection >= mui->first_onscreen_entry) &&
- (mui->touch_feedback_selection <= mui->last_onscreen_entry))
- {
- file_list_t *list = NULL;
- materialui_node_t *node = NULL;
- float higlight_color[16];
+ float higlight_color[16];
- list = menu_entries_get_selection_buf_ptr(0);
- node = (materialui_node_t*)file_list_get_userdata_at_offset(
- list, mui->touch_feedback_selection);
+ /* Set highlight colour */
+ memcpy(higlight_color, mui->colors.list_highlighted_background, sizeof(higlight_color));
+ menu_display_set_alpha(higlight_color, mui->transition_alpha * mui->touch_feedback_alpha);
- /* Sanity check */
- if (!node)
- return;
-
- /* Set highlight colour */
- memcpy(higlight_color, mui->colors.list_highlighted_background, sizeof(higlight_color));
- menu_display_set_alpha(higlight_color, mui->touch_feedback_alpha);
-
- /* Draw highlight */
- menu_display_draw_quad(
- video_info,
- 0,
- header_height - mui->scroll_y + node->y,
- width,
- node->line_height,
- width,
- height,
- higlight_color);
- }
+ /* Draw highlight */
+ materialui_render_selection_highlight(
+ mui, video_info, width, height, header_height, x_offset,
+ mui->touch_feedback_selection,
+ higlight_color);
}
}
-static void materialui_render_header(materialui_handle_t *mui, video_frame_info_t *video_info)
+static void materialui_render_header(
+ materialui_handle_t *mui, video_frame_info_t *video_info, unsigned width, unsigned height)
{
settings_t *settings = config_get_ptr();
- unsigned width = video_info->width;
- unsigned height = video_info->height;
size_t menu_title_margin = 0;
- int usable_sys_bar_width = (int)width;
- int usable_title_bar_width = (int)width;
+ int usable_sys_bar_width = (int)width - (int)mui->nav_bar_layout_width;
+ int usable_title_bar_width = usable_sys_bar_width;
size_t sys_bar_battery_width = 0;
size_t sys_bar_clock_width = 0;
- int sys_bar_text_y = (mui->sys_bar_height / 2.0f) + (mui->font_data.hint.font_height / 4.0f);
+ int sys_bar_text_y = (int)(((float)mui->sys_bar_height / 2.0f) + ((float)mui->font_data.hint.font_height / 4.0f));
+ int title_x_offset = 0;
+ int title_x = 0;
+ bool show_back_icon = menu_entries_ctl(MENU_ENTRIES_CTL_SHOW_BACK, NULL);
+ bool show_search_icon = mui->is_playlist || mui->is_file_list;
+ bool use_landscape_layout = !mui->is_portrait && settings->bools.menu_materialui_optimize_landscape_layout;
char menu_title_buf[255];
menu_title_buf[0] = '\0';
@@ -2101,10 +2706,10 @@ static void materialui_render_header(materialui_handle_t *mui, video_frame_info_
0,
mui->sys_bar_height + mui->title_bar_height,
width,
- mui->shadow_height,
+ mui->header_shadow_height,
width,
height,
- mui->colors.shadow);
+ mui->colors.header_shadow);
/* > Title bar background */
menu_display_draw_quad(
@@ -2158,7 +2763,7 @@ static void materialui_render_header(materialui_handle_t *mui, video_frame_info_
mui->sys_bar_cache.battery_percent_width = font_driver_get_message_width(
mui->font_data.hint.font,
mui->sys_bar_cache.battery_percent_str,
- strlen(mui->sys_bar_cache.battery_percent_str),
+ (unsigned)strlen(mui->sys_bar_cache.battery_percent_str),
1.0f);
}
@@ -2192,8 +2797,8 @@ static void materialui_render_header(materialui_handle_t *mui, video_frame_info_
materialui_draw_icon(video_info,
mui->sys_bar_icon_size,
(uintptr_t)texture_battery,
- width - (mui->sys_bar_cache.battery_percent_width +
- mui->sys_bar_margin + mui->sys_bar_icon_size),
+ (int)width - ((int)mui->sys_bar_cache.battery_percent_width +
+ (int)mui->sys_bar_margin + (int)mui->sys_bar_icon_size + (int)mui->nav_bar_layout_width),
0,
width,
height,
@@ -2204,7 +2809,7 @@ static void materialui_render_header(materialui_handle_t *mui, video_frame_info_
/* Draw percent text */
menu_display_draw_text(mui->font_data.hint.font,
mui->sys_bar_cache.battery_percent_str,
- width - (mui->sys_bar_cache.battery_percent_width + mui->sys_bar_margin),
+ (int)width - ((int)mui->sys_bar_cache.battery_percent_width + (int)mui->sys_bar_margin + (int)mui->nav_bar_layout_width),
sys_bar_text_y,
width, height, mui->colors.sys_bar_text, TEXT_ALIGN_LEFT, 1.0f, false, 0, false);
@@ -2242,7 +2847,7 @@ static void materialui_render_header(materialui_handle_t *mui, video_frame_info_
mui->sys_bar_cache.timedate_width = font_driver_get_message_width(
mui->font_data.hint.font,
mui->sys_bar_cache.timedate_str,
- utf8len(mui->sys_bar_cache.timedate_str),
+ (unsigned)strlen(mui->sys_bar_cache.timedate_str),
1.0f);
}
@@ -2257,7 +2862,7 @@ static void materialui_render_header(materialui_handle_t *mui, video_frame_info_
menu_display_draw_text(mui->font_data.hint.font,
mui->sys_bar_cache.timedate_str,
- width - (sys_bar_clock_width + sys_bar_battery_width),
+ (int)width - ((int)sys_bar_clock_width + (int)sys_bar_battery_width + (int)mui->nav_bar_layout_width),
sys_bar_text_y,
width, height, mui->colors.sys_bar_text, TEXT_ALIGN_LEFT, 1.0f, false, 0, false);
@@ -2301,7 +2906,7 @@ static void materialui_render_header(materialui_handle_t *mui, video_frame_info_
}
menu_display_draw_text(mui->font_data.hint.font, core_title_buf,
- mui->ticker_x_offset + mui->sys_bar_margin,
+ (int)mui->ticker_x_offset + (int)mui->sys_bar_margin,
sys_bar_text_y,
width, height, mui->colors.sys_bar_text, TEXT_ALIGN_LEFT, 1.0f, false, 0, false);
}
@@ -2311,7 +2916,7 @@ static void materialui_render_header(materialui_handle_t *mui, video_frame_info_
/* > Draw 'back' icon, if required */
menu_title_margin = mui->margin;
- if (menu_entries_ctl(MENU_ENTRIES_CTL_SHOW_BACK, NULL))
+ if (show_back_icon)
{
menu_title_margin = mui->icon_size;
@@ -2319,7 +2924,7 @@ static void materialui_render_header(materialui_handle_t *mui, video_frame_info_
mui->icon_size,
mui->textures.list[MUI_TEXTURE_BACK],
0,
- mui->sys_bar_height,
+ (int)mui->sys_bar_height,
width,
height,
0,
@@ -2330,13 +2935,13 @@ static void materialui_render_header(materialui_handle_t *mui, video_frame_info_
usable_title_bar_width -= menu_title_margin;
/* > Draw 'search' icon, if required */
- if (mui->is_playlist || mui->is_file_list)
+ if (show_search_icon)
{
materialui_draw_icon(video_info,
mui->icon_size,
mui->textures.list[MUI_TEXTURE_SEARCH],
- width - mui->icon_size,
- mui->sys_bar_height,
+ (int)width - (int)mui->icon_size - (int)mui->nav_bar_layout_width,
+ (int)mui->sys_bar_height,
width,
height,
0,
@@ -2348,6 +2953,14 @@ static void materialui_render_header(materialui_handle_t *mui, video_frame_info_
else
usable_title_bar_width -= mui->margin;
+ /* If landscape optimisation is enabled and we are
+ * drawing a back icon but no search icon, title
+ * maximum width must be reduced (otherwise cannot
+ * centre properly...) */
+ if (use_landscape_layout)
+ if (show_back_icon && !show_search_icon)
+ usable_title_bar_width -= (mui->icon_size - mui->margin);
+
usable_title_bar_width = (usable_title_bar_width > 0) ? usable_title_bar_width : 0;
/* > Draw title string */
@@ -2360,24 +2973,332 @@ static void materialui_render_header(materialui_handle_t *mui, video_frame_info_
mui->ticker_smooth.dst_str = menu_title_buf;
mui->ticker_smooth.dst_str_len = sizeof(menu_title_buf);
- menu_animation_ticker_smooth(&mui->ticker_smooth);
+ /* If ticker is not active and landscape
+ * optimisation is enabled, centre the title text */
+ if (!menu_animation_ticker_smooth(&mui->ticker_smooth))
+ if (use_landscape_layout)
+ title_x = (usable_title_bar_width - mui->ticker_str_width) >> 1;
}
else
{
mui->ticker.s = menu_title_buf;
- mui->ticker.len = (unsigned)(usable_title_bar_width / mui->font_data.title.glyph_width);
+ mui->ticker.len = (unsigned)(usable_title_bar_width / mui->font_data.title.glyph_width) - 1;
mui->ticker.str = mui->menu_title;
mui->ticker.selected = true;
- menu_animation_ticker(&mui->ticker);
+ /* If ticker is not active and landscape
+ * optimisation is enabled, centre the title text */
+ if (!menu_animation_ticker(&mui->ticker))
+ if (use_landscape_layout)
+ title_x =
+ (usable_title_bar_width -
+ ((int)utf8len(menu_title_buf) *
+ mui->font_data.title.glyph_width)) >> 1;
}
+ title_x += (int)(mui->ticker_x_offset + menu_title_margin);
+
menu_display_draw_text(mui->font_data.title.font, menu_title_buf,
- mui->ticker_x_offset + menu_title_margin,
- mui->sys_bar_height + (mui->title_bar_height / 2.0f) + (mui->font_data.title.font_height / 4.0f),
+ title_x,
+ (int)(mui->sys_bar_height + (mui->title_bar_height / 2.0f) + (mui->font_data.title.font_height / 4.0f)),
width, height, mui->colors.header_text, TEXT_ALIGN_LEFT, 1.0f, false, 0, false);
}
+/* Use seperate functions for bottom/right navigation
+ * bars. This involves substantial code duplication, but if
+ * we try to handle this with a single function then
+ * things get incredibly messy and inefficient... */
+static void materialui_render_nav_bar_bottom(
+ materialui_handle_t *mui, video_frame_info_t *video_info,
+ unsigned width, unsigned height)
+{
+ unsigned nav_bar_width = width;
+ unsigned nav_bar_height = mui->nav_bar.width;
+ int nav_bar_x = 0;
+ int nav_bar_y = (int)height - (int)mui->nav_bar.width;
+ unsigned num_tabs = mui->nav_bar.num_menu_tabs + MUI_NAV_BAR_NUM_ACTION_TABS;
+ float tab_width = (float)width / (float)num_tabs;
+ unsigned tab_width_int = (unsigned)(tab_width + 0.5f);
+ unsigned selection_marker_width = tab_width_int;
+ unsigned selection_marker_height = mui->nav_bar.selection_marker_width;
+ int selection_marker_y = (int)height - (int)mui->nav_bar.selection_marker_width;
+ unsigned i;
+
+ /* Draw navigation bar background */
+
+ /* > Background */
+ menu_display_draw_quad(
+ video_info,
+ nav_bar_x,
+ nav_bar_y,
+ nav_bar_width,
+ nav_bar_height,
+ width,
+ height,
+ mui->colors.nav_bar_background);
+
+ /* > Divider */
+ menu_display_draw_quad(
+ video_info,
+ nav_bar_x,
+ nav_bar_y,
+ nav_bar_width,
+ mui->nav_bar.divider_width,
+ width,
+ height,
+ mui->colors.divider);
+
+ /* Draw tabs */
+
+ /* > Back - left hand side */
+ materialui_draw_icon(video_info,
+ mui->icon_size,
+ mui->textures.list[mui->nav_bar.back_tab.texture_index],
+ (0.5f * tab_width) - ((float)mui->icon_size / 2.0f),
+ nav_bar_y,
+ width,
+ height,
+ 0,
+ 1,
+ mui->nav_bar.back_tab.enabled ?
+ mui->colors.nav_bar_icon_passive : mui->colors.nav_bar_icon_disabled);
+
+ /* > Resume - right hand side */
+ materialui_draw_icon(video_info,
+ mui->icon_size,
+ mui->textures.list[mui->nav_bar.resume_tab.texture_index],
+ (((float)num_tabs - 0.5f) * tab_width) - ((float)mui->icon_size / 2.0f),
+ nav_bar_y,
+ width,
+ height,
+ 0,
+ 1,
+ mui->nav_bar.resume_tab.enabled ?
+ mui->colors.nav_bar_icon_passive : mui->colors.nav_bar_icon_disabled);
+
+ /* Menu tabs - in the centre, left to right */
+ for (i = 0; i < mui->nav_bar.num_menu_tabs; i++)
+ {
+ materialui_nav_bar_menu_tab_t *tab = &mui->nav_bar.menu_tabs[i];
+ float *draw_color = tab->active ?
+ mui->colors.nav_bar_icon_active : mui->colors.nav_bar_icon_passive;
+
+ /* Draw icon */
+ materialui_draw_icon(video_info,
+ mui->icon_size,
+ mui->textures.list[tab->texture_index],
+ (((float)i + 1.5f) * tab_width) - ((float)mui->icon_size / 2.0f),
+ nav_bar_y,
+ width,
+ height,
+ 0,
+ 1,
+ draw_color);
+
+ /* Draw selection marker */
+ menu_display_draw_quad(
+ video_info,
+ (int)((i + 1) * tab_width_int),
+ selection_marker_y,
+ selection_marker_width,
+ selection_marker_height,
+ width,
+ height,
+ draw_color);
+ }
+}
+
+static void materialui_render_nav_bar_right(
+ materialui_handle_t *mui, video_frame_info_t *video_info,
+ unsigned width, unsigned height)
+{
+ unsigned nav_bar_width = mui->nav_bar.width;
+ unsigned nav_bar_height = height;
+ int nav_bar_x = (int)width - (int)mui->nav_bar.width;
+ int nav_bar_y = 0;
+ unsigned num_tabs = mui->nav_bar.num_menu_tabs + MUI_NAV_BAR_NUM_ACTION_TABS;
+ float tab_height = (float)height / (float)num_tabs;
+ unsigned tab_height_int = (unsigned)(tab_height + 0.5f);
+ unsigned selection_marker_width = mui->nav_bar.selection_marker_width;
+ unsigned selection_marker_height = tab_height_int;
+ int selection_marker_x = (int)width - (int)mui->nav_bar.selection_marker_width;
+ unsigned i;
+
+ /* Draw navigation bar background */
+
+ /* > Background */
+ menu_display_draw_quad(
+ video_info,
+ nav_bar_x,
+ nav_bar_y,
+ nav_bar_width,
+ nav_bar_height,
+ width,
+ height,
+ mui->colors.nav_bar_background);
+
+ /* > Divider */
+ menu_display_draw_quad(
+ video_info,
+ nav_bar_x,
+ nav_bar_y,
+ mui->nav_bar.divider_width,
+ nav_bar_height,
+ width,
+ height,
+ mui->colors.divider);
+
+ /* Draw tabs */
+
+ /* > Back - bottom */
+ materialui_draw_icon(video_info,
+ mui->icon_size,
+ mui->textures.list[mui->nav_bar.back_tab.texture_index],
+ nav_bar_x,
+ (((float)num_tabs - 0.5f) * tab_height) - ((float)mui->icon_size / 2.0f),
+ width,
+ height,
+ 0,
+ 1,
+ mui->nav_bar.back_tab.enabled ?
+ mui->colors.nav_bar_icon_passive : mui->colors.nav_bar_icon_disabled);
+
+ /* > Resume - top */
+ materialui_draw_icon(video_info,
+ mui->icon_size,
+ mui->textures.list[mui->nav_bar.resume_tab.texture_index],
+ nav_bar_x,
+ (0.5f * tab_height) - ((float)mui->icon_size / 2.0f),
+ width,
+ height,
+ 0,
+ 1,
+ mui->nav_bar.resume_tab.enabled ?
+ mui->colors.nav_bar_icon_passive : mui->colors.nav_bar_icon_disabled);
+
+ /* Menu tabs - in the centre, top to bottom */
+ for (i = 0; i < mui->nav_bar.num_menu_tabs; i++)
+ {
+ materialui_nav_bar_menu_tab_t *tab = &mui->nav_bar.menu_tabs[i];
+ float *draw_color = tab->active ?
+ mui->colors.nav_bar_icon_active : mui->colors.nav_bar_icon_passive;
+
+ /* Draw icon */
+ materialui_draw_icon(video_info,
+ mui->icon_size,
+ mui->textures.list[tab->texture_index],
+ nav_bar_x,
+ (((float)i + 1.5f) * tab_height) - ((float)mui->icon_size / 2.0f),
+ width,
+ height,
+ 0,
+ 1,
+ draw_color);
+
+ /* Draw selection marker */
+ menu_display_draw_quad(
+ video_info,
+ selection_marker_x,
+ (int)((i + 1) * tab_height_int),
+ selection_marker_width,
+ selection_marker_height,
+ width,
+ height,
+ draw_color);
+ }
+}
+
+static void materialui_render_nav_bar(
+ materialui_handle_t *mui, video_frame_info_t *video_info,
+ unsigned width, unsigned height)
+{
+ if (mui->nav_bar.location == MUI_NAV_BAR_LOCATION_RIGHT)
+ materialui_render_nav_bar_right(
+ mui, video_info, width, height);
+ else
+ materialui_render_nav_bar_bottom(
+ mui, video_info, width, height);
+}
+
+/* Sets transparency of all menu list colours if
+ * a transition animation is in process */
+static void materialui_colors_set_transition_alpha(materialui_handle_t *mui)
+{
+ if (mui->transition_alpha < 1.0f)
+ {
+ float alpha = mui->transition_alpha;
+ unsigned alpha_255 = (unsigned)((255.0f * alpha) + 0.5f);
+
+ /* Text colours */
+ mui->colors.list_text = (mui->colors.list_text & 0xFFFFFF00) | alpha_255;
+ mui->colors.list_text_highlighted = (mui->colors.list_text_highlighted & 0xFFFFFF00) | alpha_255;
+ mui->colors.list_hint_text = (mui->colors.list_hint_text & 0xFFFFFF00) | alpha_255;
+ mui->colors.list_hint_text_highlighted = (mui->colors.list_hint_text_highlighted & 0xFFFFFF00) | alpha_255;
+
+ /* Background/object colours */
+ menu_display_set_alpha(mui->colors.list_highlighted_background, alpha);
+ menu_display_set_alpha(mui->colors.list_icon, alpha);
+ menu_display_set_alpha(mui->colors.list_switch_on, alpha);
+ menu_display_set_alpha(mui->colors.list_switch_on_background, alpha);
+ menu_display_set_alpha(mui->colors.list_switch_off, alpha);
+ menu_display_set_alpha(mui->colors.list_switch_off_background, alpha);
+ menu_display_set_alpha(mui->colors.scrollbar, alpha);
+
+ /* Landscape border shadow only fades if:
+ * - Landscape border is shown
+ * - We are currently performaing a slide animation */
+ if ((mui->landscape_entry_margin != 0) &&
+ (mui->transition_x_offset != 0.0f))
+ {
+ float border_shadow_alpha =
+ mui->colors.landscape_border_shadow_opacity * alpha;
+
+ mui->colors.landscape_border_shadow_left[7] = border_shadow_alpha;
+ mui->colors.landscape_border_shadow_left[15] = border_shadow_alpha;
+ mui->colors.landscape_border_shadow_right[3] = border_shadow_alpha;
+ mui->colors.landscape_border_shadow_right[11] = border_shadow_alpha;
+ }
+ }
+}
+
+/* Resets transparency of all menu list colours if
+ * previously altered by a menu transition animation */
+static void materialui_colors_reset_transition_alpha(materialui_handle_t *mui)
+{
+ if (mui->transition_alpha < 1.0f)
+ {
+ /* Text colours */
+ mui->colors.list_text = (mui->colors.list_text | 0xFF);
+ mui->colors.list_text_highlighted = (mui->colors.list_text_highlighted | 0xFF);
+ mui->colors.list_hint_text = (mui->colors.list_hint_text | 0xFF);
+ mui->colors.list_hint_text_highlighted = (mui->colors.list_hint_text_highlighted | 0xFF);
+
+ /* Background/object colours */
+ menu_display_set_alpha(mui->colors.list_highlighted_background, 1.0f);
+ menu_display_set_alpha(mui->colors.list_icon, 1.0f);
+ menu_display_set_alpha(mui->colors.list_switch_on, 1.0f);
+ menu_display_set_alpha(mui->colors.list_switch_on_background, 1.0f);
+ menu_display_set_alpha(mui->colors.list_switch_off, 1.0f);
+ menu_display_set_alpha(mui->colors.list_switch_off_background, 1.0f);
+ menu_display_set_alpha(mui->colors.scrollbar, 1.0f);
+
+ /* Landscape border shadow only fades if:
+ * - Landscape border is shown
+ * - We are currently performaing a slide animation */
+ if ((mui->landscape_entry_margin != 0) &&
+ (mui->transition_x_offset != 0.0f))
+ {
+ float border_shadow_alpha =
+ mui->colors.landscape_border_shadow_opacity;
+
+ mui->colors.landscape_border_shadow_left[7] = border_shadow_alpha;
+ mui->colors.landscape_border_shadow_left[15] = border_shadow_alpha;
+ mui->colors.landscape_border_shadow_right[3] = border_shadow_alpha;
+ mui->colors.landscape_border_shadow_right[11] = border_shadow_alpha;
+ }
+ }
+}
+
/* Main function of the menu driver
* Draws all menu elements */
static void materialui_frame(void *data, video_frame_info_t *video_info)
@@ -2388,16 +3309,13 @@ static void materialui_frame(void *data, video_frame_info_t *video_info)
unsigned height = video_info->height;
unsigned header_height = menu_display_get_header_height();
size_t selection = menu_navigation_get_selection();
+ int list_x_offset;
if (!mui || !settings)
return;
menu_display_set_viewport(width, height);
- /* It seems that we have to call this every frame
- * (don't know why...) */
- menu_animation_ctl(MENU_ANIMATION_CTL_SET_ACTIVE, NULL);
-
/* Clear text */
font_driver_bind_block(mui->font_data.title.font, &mui->font_data.title.raster_block);
font_driver_bind_block(mui->font_data.list.font, &mui->font_data.list.raster_block);
@@ -2428,40 +3346,34 @@ static void materialui_frame(void *data, video_frame_info_t *video_info)
mui->ticker.type_enum = (enum menu_animation_ticker_type)settings->uints.menu_ticker_type;
}
+ /* Handle any transparency adjustments required
+ * by menu transition animations */
+ materialui_colors_set_transition_alpha(mui);
+
+ /* Get x offset for list items, required by
+ * menu transition 'slide' animations */
+ list_x_offset = (int)(mui->transition_x_offset * (float)((int)width - (int)mui->nav_bar_layout_width));
+
/* Draw background */
materialui_render_background(mui, video_info);
+ /* Draw landscape border
+ * (does nothing in portrait mode, or if landscape
+ * optimisations are disabled) */
+ materialui_render_landscape_border(
+ mui, video_info, width, height, header_height, list_x_offset);
+
/* Draw 'highlighted entry' selection box */
- if ((selection >= mui->first_onscreen_entry) &&
- (selection <= mui->last_onscreen_entry))
- {
- file_list_t *list = NULL;
- materialui_node_t *node = NULL;
-
- list = menu_entries_get_selection_buf_ptr(0);
- node = (materialui_node_t*)file_list_get_userdata_at_offset(list, selection);
-
- if (node)
- menu_display_draw_quad(
- video_info,
- 0,
- header_height - mui->scroll_y + node->y,
- width,
- node->line_height,
- width,
- height,
- mui->colors.list_highlighted_background);
- }
+ materialui_render_selection_highlight(
+ mui, video_info, width, height, header_height, list_x_offset, selection,
+ mui->colors.list_highlighted_background);
/* Draw 'short press' touch feedback highlight */
materialui_render_entry_touch_feedback(
- mui, video_info, width, height, header_height, selection);
+ mui, video_info, width, height, header_height, list_x_offset, selection);
/* Draw menu list */
- if (menu_display_get_update_pending())
- materialui_render_menu_list(mui, video_info, width, height);
-
- materialui_draw_scrollbar(mui, video_info, width, height);
+ materialui_render_menu_list(mui, video_info, width, height, list_x_offset);
/* Flush first layer of text
* > Menu list only uses list and hint fonts */
@@ -2472,29 +3384,18 @@ static void materialui_frame(void *data, video_frame_info_t *video_info)
mui->font_data.hint.raster_block.carr.coords.vertices = 0;
/* Draw title + system bar */
- materialui_render_header(mui, video_info);
+ materialui_render_header(mui, video_info, width, height);
/* Draw navigation bar */
- if (mui->tabs_height > 0)
- {
- unsigned i = 0;
-
- materialui_draw_tab_begin(mui, video_info, width, height);
-
- for (i = 0; i <= MUI_SYSTEM_TAB_END; i++)
- materialui_draw_tab(mui, video_info, i, width, height);
-
- materialui_draw_tab_end(mui, video_info, width, height);
- }
+ materialui_render_nav_bar(mui, video_info, width, height);
/* Flush second layer of text
* > Title + system bar only use title and hint fonts */
font_driver_flush(width, height, mui->font_data.title.font, video_info);
font_driver_flush(width, height, mui->font_data.hint.font, video_info);
- font_driver_bind_block(mui->font_data.title.font, NULL);
- font_driver_bind_block(mui->font_data.list.font, NULL);
- font_driver_bind_block(mui->font_data.hint.font, NULL);
+ mui->font_data.title.raster_block.carr.coords.vertices = 0;
+ mui->font_data.hint.raster_block.carr.coords.vertices = 0;
/* Handle onscreen keyboard */
if (menu_input_dialog_get_display_kb())
@@ -2505,23 +3406,43 @@ static void materialui_frame(void *data, video_frame_info_t *video_info)
msg[0] = '\0';
+ /* Darken screen */
menu_display_draw_quad(video_info,
0, 0, width, height, width, height, mui->colors.screen_fade);
- snprintf(msg, sizeof(msg), "%s\n%s", label, str);
- materialui_render_messagebox(mui, video_info, msg);
+ /* Draw message box */
+ snprintf(msg, sizeof(msg), "%s\n%s", label, str);
+ materialui_render_messagebox(mui, video_info, height / 4, msg);
+
+ /* Draw onscreen keyboard */
+ menu_display_draw_keyboard(
+ mui->textures.list[MUI_TEXTURE_KEY_HOVER],
+ mui->font_data.list.font,
+ video_info,
+ menu_event_get_osk_grid(), menu_event_get_osk_ptr(),
+ 0xFFFFFFFF);
+
+ /* Flush message box & osk text
+ * > Message box & osk only use list font */
+ font_driver_flush(width, height, mui->font_data.list.font, video_info);
+ mui->font_data.list.raster_block.carr.coords.vertices = 0;
}
/* Draw message box */
- if (!string_is_empty(mui->box_message))
+ if (!string_is_empty(mui->msgbox))
{
+ /* Darken screen */
menu_display_draw_quad(video_info,
0, 0, width, height, width, height, mui->colors.screen_fade);
- materialui_render_messagebox(mui, video_info, mui->box_message);
+ /* Draw message box */
+ materialui_render_messagebox(mui, video_info, height / 2, mui->msgbox);
+ mui->msgbox[0] = '\0';
- free(mui->box_message);
- mui->box_message = NULL;
+ /* Flush message box text
+ * > Message box only uses list font */
+ font_driver_flush(width, height, mui->font_data.list.font, video_info);
+ mui->font_data.list.raster_block.carr.coords.vertices = 0;
}
/* Draw mouse cursor */
@@ -2545,7 +3466,15 @@ static void materialui_frame(void *data, video_frame_info_t *video_info)
height);
}
- menu_display_restore_clear_color();
+ /* Undo any transparency adjustments caused
+ * by menu transition animations */
+ materialui_colors_reset_transition_alpha(mui);
+
+ /* Unbind fonts */
+ font_driver_bind_block(mui->font_data.title.font, NULL);
+ font_driver_bind_block(mui->font_data.list.font, NULL);
+ font_driver_bind_block(mui->font_data.hint.font, NULL);
+
menu_display_unset_viewport(width, height);
}
@@ -2557,36 +3486,75 @@ static void materialui_layout(materialui_handle_t *mui, bool video_is_threaded)
int hint_font_size;
unsigned new_header_height;
- mui->cursor_size = mui->dip_base_unit_size / 3;
+ mui->is_portrait = mui->last_height >= mui->last_width;
- mui->sys_bar_height = mui->dip_base_unit_size / 7;
- mui->title_bar_height = mui->dip_base_unit_size / 3;
- new_header_height = mui->sys_bar_height + mui->title_bar_height;
+ mui->cursor_size = mui->dip_base_unit_size / 3;
- title_font_size = mui->dip_base_unit_size / 7;
- list_font_size = mui->dip_base_unit_size / 9;
- hint_font_size = mui->dip_base_unit_size / 11;
+ mui->sys_bar_height = mui->dip_base_unit_size / 7;
+ mui->title_bar_height = mui->dip_base_unit_size / 3;
+ new_header_height = mui->sys_bar_height + mui->title_bar_height;
- mui->shadow_height = mui->dip_base_unit_size / 36;
- mui->scrollbar_width = mui->dip_base_unit_size / 36;
+ title_font_size = mui->dip_base_unit_size / 7;
+ list_font_size = mui->dip_base_unit_size / 9;
+ hint_font_size = mui->dip_base_unit_size / 11;
- mui->divider_width = (mui->last_scale_factor > 1.0f) ?
+ mui->header_shadow_height = mui->dip_base_unit_size / 36;
+ mui->scrollbar_width = mui->dip_base_unit_size / 36;
+
+ mui->margin = mui->dip_base_unit_size / 9;
+ mui->icon_size = mui->dip_base_unit_size / 3;
+
+ mui->sys_bar_margin = mui->dip_base_unit_size / 12;
+ mui->sys_bar_icon_size = mui->dip_base_unit_size / 7;
+
+ /* Get navigation bar layout
+ * > Normally drawn at the bottom of the screen,
+ * but in landscape orientations should be placed
+ * on the right hand side */
+ mui->nav_bar.width = mui->dip_base_unit_size / 3;
+ mui->nav_bar.divider_width = (mui->last_scale_factor > 1.0f) ?
(unsigned)(mui->last_scale_factor + 0.5f) : 1;
+ mui->nav_bar.selection_marker_width = mui->nav_bar.width / 16;
- mui->tabs_height = 0;
- if (materialui_list_get_size(mui, MENU_LIST_PLAIN) == 1)
- mui->tabs_height = mui->dip_base_unit_size / 3;
+ if (!mui->is_portrait && mui->last_auto_rotate_nav_bar)
+ {
+ mui->nav_bar.location = MUI_NAV_BAR_LOCATION_RIGHT;
+ mui->nav_bar_layout_width = mui->nav_bar.width;
+ mui->nav_bar_layout_height = 0;
+ }
+ else
+ {
+ mui->nav_bar.location = MUI_NAV_BAR_LOCATION_BOTTOM;
+ mui->nav_bar_layout_width = 0;
+ mui->nav_bar_layout_height = mui->nav_bar.width;
+ }
- mui->margin = mui->dip_base_unit_size / 9;
- mui->icon_size = mui->dip_base_unit_size / 3;
+ /* In landscape orientations, menu lists are too wide
+ * (to the extent that they are rather uncomfortable
+ * to look at...)
+ * > When using a landscape layout, we therefore use
+ * additional padding at the left/right sides of
+ * the screen */
+ mui->landscape_entry_margin = 0;
+ if (!mui->is_portrait && mui->last_optimize_landscape_layout)
+ {
+ /* After testing various approaches, it seems that
+ * simply enforcing a 4:3 aspect ratio produces the
+ * best results */
+ const float base_aspect = 4.0f / 3.0f;
+ float landscape_margin =
+ ((float)(mui->last_width - mui->nav_bar_layout_width) -
+ (base_aspect * (float)mui->last_height)) / 2.0f;
- mui->sys_bar_margin = mui->dip_base_unit_size / 12;
- mui->sys_bar_icon_size = mui->dip_base_unit_size / 7;
+ /* Note: Want to round down here */
+ if (landscape_margin > 1.0f)
+ mui->landscape_entry_margin = (unsigned)landscape_margin;
+ }
/* We assume the average glyph aspect ratio is close to 3:4 */
- mui->font_data.title.glyph_width = title_font_size * 3/4;
- mui->font_data.list.glyph_width = list_font_size * 3/4;
- mui->font_data.hint.glyph_width = hint_font_size * 3/4;
+ mui->font_data.title.glyph_width = (int)((title_font_size * (3.0f / 4.0f)) + 0.5f);
+ mui->font_data.list.glyph_width = (int)((list_font_size * (3.0f / 4.0f)) + 0.5f);
+ mui->font_data.hint.glyph_width = (int)((hint_font_size * (3.0f / 4.0f)) + 0.5f);
menu_display_set_header_height(new_header_height);
@@ -2668,12 +3636,45 @@ static void materialui_layout(materialui_handle_t *mui, bool video_is_threaded)
mui->need_compute = true;
}
+static void materialui_init_nav_bar(materialui_handle_t *mui)
+{
+ /* Assign action tab textures and types, and ensure sane
+ * menu tab starting values */
+ unsigned i;
+
+ /* Back tab */
+ mui->nav_bar.back_tab.type = MUI_NAV_BAR_ACTION_TAB_BACK;
+ mui->nav_bar.back_tab.texture_index = MUI_TEXTURE_TAB_BACK;
+ mui->nav_bar.back_tab.enabled = false;
+
+ /* Resume tab */
+ mui->nav_bar.resume_tab.type = MUI_NAV_BAR_ACTION_TAB_RESUME;
+ mui->nav_bar.resume_tab.texture_index = MUI_TEXTURE_TAB_RESUME;
+ mui->nav_bar.resume_tab.enabled = false;
+
+ /* Menu tabs */
+ for (i = 0; i < MUI_NAV_BAR_NUM_MENU_TABS_MAX; i++)
+ {
+ mui->nav_bar.menu_tabs[i].type = MUI_NAV_BAR_MENU_TAB_NONE;
+ mui->nav_bar.menu_tabs[i].texture_index = 0;
+ mui->nav_bar.menu_tabs[i].active = false;
+ }
+
+ /* 'Metadata' */
+ mui->nav_bar.num_menu_tabs = 0;
+ mui->nav_bar.active_menu_tab_index = 0;
+ mui->nav_bar.last_active_menu_tab_index = 0;
+ mui->nav_bar.menu_navigation_wrapped = false;
+ mui->nav_bar.location = MUI_NAV_BAR_LOCATION_BOTTOM;
+}
+
static void *materialui_init(void **userdata, bool video_is_threaded)
{
unsigned width, height;
- settings_t *settings = config_get_ptr();
- materialui_handle_t *mui = NULL;
- menu_handle_t *menu = (menu_handle_t*)calloc(1, sizeof(*menu));
+ settings_t *settings = config_get_ptr();
+ materialui_handle_t *mui = NULL;
+ menu_handle_t *menu = (menu_handle_t*)calloc(1, sizeof(*menu));
+ static const char* const ticker_spacer = MUI_TICKER_SPACER;
if (!menu || !settings)
return NULL;
@@ -2701,6 +3702,7 @@ static void *materialui_init(void **userdata, bool video_is_threaded)
mui->is_playlist = false;
mui->is_file_list = false;
mui->is_dropdown_list = false;
+ mui->menu_stack_flushed = false;
mui->first_onscreen_entry = 0;
mui->last_onscreen_entry = 0;
@@ -2714,15 +3716,25 @@ static void *materialui_init(void **userdata, bool video_is_threaded)
/* Initial ticker configuration */
mui->use_smooth_ticker = settings->bools.menu_ticker_smooth;
mui->ticker_smooth.font_scale = 1.0f;
- mui->ticker_smooth.spacer = NULL;
+ mui->ticker_smooth.spacer = ticker_spacer;
mui->ticker_smooth.x_offset = &mui->ticker_x_offset;
mui->ticker_smooth.dst_str_width = &mui->ticker_str_width;
- mui->ticker.spacer = NULL;
+ mui->ticker.spacer = ticker_spacer;
- /* Ensure touch feedback parameters are zeroed out */
+ /* Ensure menu animation parameters are properly
+ * reset */
mui->touch_feedback_cache_selection = false;
mui->touch_feedback_selection = 0;
mui->touch_feedback_alpha = 0.0f;
+ mui->transition_alpha = 1.0f;
+ mui->transition_x_offset = 0.0f;
+ mui->last_stack_size = 1;
+
+ /* Ensure message box string is empty */
+ mui->msgbox[0] = '\0';
+
+ /* Initialise navigation bar */
+ materialui_init_nav_bar(mui);
return menu;
error:
@@ -2808,23 +3820,28 @@ static bool materialui_load_image(void *userdata, void *data, enum menu_image_ty
static void materialui_animate_scroll(
materialui_handle_t *mui, float scroll_pos, float duration)
{
- menu_animation_ctx_entry_t entry;
+ menu_animation_ctx_tag animation_tag = (uintptr_t)&mui->scroll_y;
+ menu_animation_ctx_entry_t animation_entry;
+
+ /* Kill any existing scroll animation */
+ menu_animation_kill_by_tag(&animation_tag);
/* mui->scroll_y will be modified by the animation
* > Set scroll acceleration to zero to minimise
* potential conflicts */
menu_input_set_pointer_y_accel(0.0f);
- entry.duration = duration;
- entry.target_value = scroll_pos;
- entry.subject = &mui->scroll_y;
- entry.easing_enum = EASING_IN_OUT_QUAD;
- /* TODO/FIXME - integer conversion resulted in change of sign */
- entry.tag = -1;
- entry.cb = NULL;
+ /* Configure animation */
+ animation_entry.easing_enum = EASING_IN_OUT_QUAD;
+ animation_entry.tag = animation_tag;
+ animation_entry.duration = duration;
+ animation_entry.target_value = scroll_pos;
+ animation_entry.subject = &mui->scroll_y;
+ animation_entry.cb = NULL;
+ animation_entry.userdata = NULL;
- if (entry.subject)
- menu_animation_push(&entry);
+ /* Push animation */
+ menu_animation_push(&animation_entry);
}
/* The navigation pointer has been updated (for example by pressing up or down
@@ -2839,7 +3856,7 @@ static void materialui_navigation_set(void *data, bool scroll)
materialui_animate_scroll(
mui,
materialui_get_scroll(mui),
- 166.0f);
+ MUI_ANIM_DURATION_SCROLL);
}
static void materialui_list_set_selection(void *data, file_list_t *list)
@@ -2860,8 +3877,11 @@ static void materialui_navigation_clear(void *data, bool pending_push)
return;
menu_entries_ctl(MENU_ENTRIES_CTL_SET_START, &i);
- mui->scroll_y = 0.0f;
- menu_input_set_pointer_y_accel(0.0f);
+
+ materialui_animate_scroll(
+ mui,
+ 0.0f,
+ MUI_ANIM_DURATION_SCROLL_RESET);
}
static void materialui_navigation_set_last(void *data)
@@ -2874,14 +3894,197 @@ static void materialui_navigation_alphabet(void *data, size_t *unused)
materialui_navigation_set(data, true);
}
+static void materialui_populate_nav_bar(
+ materialui_handle_t *mui, const char *label, settings_t *settings)
+{
+ menu_handle_t *menu_data = menu_driver_get_ptr();
+ unsigned menu_tab_index = 0;
+ bool content_loaded = false;
+
+ /* Cache last active menu tab index */
+ mui->nav_bar.last_active_menu_tab_index = mui->nav_bar.active_menu_tab_index;
+
+ /* Back tab */
+ mui->nav_bar.back_tab.enabled = menu_entries_ctl(MENU_ENTRIES_CTL_SHOW_BACK, NULL);
+
+ /* Resume tab
+ * > Menu driver must be alive at this point, and retroarch
+ * must be initialised, so all we have to do (or can do)
+ * is check whether a non-dummy core is loaded) */
+ mui->nav_bar.resume_tab.enabled = !rarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL);
+
+ /* Menu tabs */
+
+ /* > Main menu */
+ mui->nav_bar.menu_tabs[menu_tab_index].type =
+ MUI_NAV_BAR_MENU_TAB_MAIN;
+ mui->nav_bar.menu_tabs[menu_tab_index].texture_index =
+ MUI_TEXTURE_TAB_MAIN;
+ mui->nav_bar.menu_tabs[menu_tab_index].active =
+ string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_MAIN_MENU));
+
+ if(mui->nav_bar.menu_tabs[menu_tab_index].active)
+ mui->nav_bar.active_menu_tab_index = menu_tab_index;
+
+ menu_tab_index++;
+
+ /* > Playlists */
+ if (settings->bools.menu_content_show_playlists)
+ {
+ mui->nav_bar.menu_tabs[menu_tab_index].type =
+ MUI_NAV_BAR_MENU_TAB_PLAYLISTS;
+ mui->nav_bar.menu_tabs[menu_tab_index].texture_index =
+ MUI_TEXTURE_TAB_PLAYLISTS;
+ mui->nav_bar.menu_tabs[menu_tab_index].active =
+ string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_PLAYLISTS_TAB));
+
+ if(mui->nav_bar.menu_tabs[menu_tab_index].active)
+ mui->nav_bar.active_menu_tab_index = menu_tab_index;
+
+ menu_tab_index++;
+ }
+
+ /* > Settings */
+ mui->nav_bar.menu_tabs[menu_tab_index].type =
+ MUI_NAV_BAR_MENU_TAB_SETTINGS;
+ mui->nav_bar.menu_tabs[menu_tab_index].texture_index =
+ MUI_TEXTURE_TAB_SETTINGS;
+ mui->nav_bar.menu_tabs[menu_tab_index].active =
+ string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_SETTINGS_TAB));
+
+ if(mui->nav_bar.menu_tabs[menu_tab_index].active)
+ mui->nav_bar.active_menu_tab_index = menu_tab_index;
+
+ menu_tab_index++;
+
+ /* Cache current number of menu tabs */
+ mui->nav_bar.num_menu_tabs = menu_tab_index;
+}
+
+static void materialui_init_transition_animation(
+ materialui_handle_t *mui, settings_t *settings)
+{
+ size_t stack_size = materialui_list_get_size(mui, MENU_LIST_PLAIN);
+ menu_animation_ctx_tag alpha_tag = (uintptr_t)&mui->transition_alpha;
+ menu_animation_ctx_tag x_offset_tag = (uintptr_t)&mui->transition_x_offset;
+ menu_animation_ctx_entry_t alpha_entry;
+ menu_animation_ctx_entry_t x_offset_entry;
+
+ /* If animations are disabled, reset alpha/x offset
+ * values and return immediately */
+ if (settings->uints.menu_materialui_transition_animation ==
+ MATERIALUI_TRANSITION_ANIM_NONE)
+ {
+ mui->transition_alpha = 1.0f;
+ mui->transition_x_offset = 0.0f;
+ mui->last_stack_size = stack_size;
+ return;
+ }
+
+ /* Fade in animation (alpha)
+ * This is *always* used, regardless of the set animation
+ * type */
+
+ /* > Kill any existing animations and set
+ * initial alpha value */
+ menu_animation_kill_by_tag(&alpha_tag);
+ mui->transition_alpha = 0.0f;
+
+ /* > Configure animation */
+ alpha_entry.easing_enum = EASING_OUT_QUAD;
+ alpha_entry.tag = alpha_tag;
+ alpha_entry.duration = MUI_ANIM_DURATION_MENU_TRANSITION;
+ alpha_entry.target_value = 1.0f;
+ alpha_entry.subject = &mui->transition_alpha;
+ alpha_entry.cb = NULL;
+ alpha_entry.userdata = NULL;
+
+ /* > Push animation */
+ menu_animation_push(&alpha_entry);
+
+ /* Slide animation (x offset) */
+
+ /* > Kill any existing animations and set
+ * initial x offset value */
+ menu_animation_kill_by_tag(&x_offset_tag);
+ mui->transition_x_offset = 0.0f;
+
+ /* >> Menu tab 'reset' action - using navigation
+ * bar to switch directly from low level menu
+ * to a top level menu
+ * - We apply a standard 'back' animation here */
+ if (mui->menu_stack_flushed)
+ {
+ if (settings->uints.menu_materialui_transition_animation !=
+ MATERIALUI_TRANSITION_ANIM_FADE)
+ mui->transition_x_offset = -1.0f;
+ }
+ /* >> Menu 'forward' action */
+ else if (stack_size > mui->last_stack_size)
+ {
+ if (settings->uints.menu_materialui_transition_animation ==
+ MATERIALUI_TRANSITION_ANIM_SLIDE)
+ mui->transition_x_offset = 1.0f;
+ }
+ /* >> Menu 'back' action */
+ else if (stack_size < mui->last_stack_size)
+ {
+ if (settings->uints.menu_materialui_transition_animation ==
+ MATERIALUI_TRANSITION_ANIM_SLIDE)
+ mui->transition_x_offset = -1.0f;
+ }
+ /* >> Menu tab 'switch' action - using navigation
+ * bar to switch between top level menus */
+ else if ((stack_size == 1) &&
+ (settings->uints.menu_materialui_transition_animation !=
+ MATERIALUI_TRANSITION_ANIM_FADE))
+ {
+ /* We're not changing menu levels here, so set
+ * slide to match horizontal list 'movement'
+ * direction */
+ if (mui->nav_bar.active_menu_tab_index < mui->nav_bar.last_active_menu_tab_index)
+ {
+ if (mui->nav_bar.menu_navigation_wrapped)
+ mui->transition_x_offset = 1.0f;
+ else
+ mui->transition_x_offset = -1.0f;
+ }
+ else if (mui->nav_bar.active_menu_tab_index > mui->nav_bar.last_active_menu_tab_index)
+ {
+ if (mui->nav_bar.menu_navigation_wrapped)
+ mui->transition_x_offset = -1.0f;
+ else
+ mui->transition_x_offset = 1.0f;
+ }
+ }
+
+ mui->last_stack_size = stack_size;
+
+ if (mui->transition_x_offset != 0.0f)
+ {
+ /* > Configure animation */
+ x_offset_entry.easing_enum = EASING_OUT_QUAD;
+ x_offset_entry.tag = x_offset_tag;
+ x_offset_entry.duration = MUI_ANIM_DURATION_MENU_TRANSITION;
+ x_offset_entry.target_value = 0.0f;
+ x_offset_entry.subject = &mui->transition_x_offset;
+ x_offset_entry.cb = NULL;
+ x_offset_entry.userdata = NULL;
+
+ /* > Push animation */
+ menu_animation_push(&x_offset_entry);
+ }
+}
+
/* A new list had been pushed */
static void materialui_populate_entries(
void *data, const char *path,
const char *label, unsigned i)
{
materialui_handle_t *mui = (materialui_handle_t*)data;
+ settings_t *settings = config_get_ptr();
- if (!mui)
+ if (!mui || !settings)
return;
/* Set menu title */
@@ -2924,19 +4127,8 @@ static void materialui_populate_entries(
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_PLAYLIST_LEFT_THUMBNAIL_MODE));
}
- /* Set tab bar height
- * (Tab bar is displayed if menu depth equals one,
- * otherwise it is hidden) */
- mui->tabs_height = 0;
- if (materialui_list_get_size(mui, MENU_LIST_PLAIN) == 1)
- mui->tabs_height = mui->dip_base_unit_size / 3;
-
- mui->need_compute = true;
-
- /* Note: mui->scroll_y position needs to be set here,
- * but we can't do this until materialui_compute_entries_box()
- * has been called. We therefore delegate it until mui->need_compute
- * is acted upon */
+ /* Update navigation bar tabs */
+ materialui_populate_nav_bar(mui, label, settings);
/* Reset touch feedback parameters
* (i.e. there should be no leftover highlight
@@ -2944,6 +4136,18 @@ static void materialui_populate_entries(
mui->touch_feedback_cache_selection = false;
mui->touch_feedback_selection = 0;
mui->touch_feedback_alpha = 0.0f;
+
+ /* Initialise menu transition animation */
+ materialui_init_transition_animation(mui, settings);
+
+ /* Reset 'menu stack flushed' state */
+ mui->menu_stack_flushed = false;
+
+ /* Note: mui->scroll_y position needs to be set here,
+ * but we can't do this until materialui_compute_entries_box()
+ * has been called. We therefore delegate it until mui->need_compute
+ * is acted upon */
+ mui->need_compute = true;
}
static void materialui_context_reset_internal(
@@ -3001,43 +4205,84 @@ static int materialui_environ(enum menu_environ_cb type, void *data, void *userd
return -1;
}
-/* Called before we push the new list after clicking on a tab */
-static void materialui_preswitch_tabs(materialui_handle_t *mui, unsigned action)
+/* Called before we push the new list after:
+ * - Clicking a menu-type tab on the navigation bar
+ * - Using left/right to navigate between top level menus */
+static bool materialui_preswitch_tabs(
+ materialui_handle_t *mui, materialui_nav_bar_menu_tab_t *target_tab)
{
size_t stack_size = 0;
file_list_t *menu_stack = NULL;
+ bool stack_flushed = false;
- if (!mui)
- return;
+ /* Pressing a navigation menu tab always returns us to
+ * one of the top level menus. There are two ways to
+ * implement this:
+ * 1) Push a new menu list
+ * 2) Reset the current menu stack, then switch
+ * to new menu
+ * Option 1 seems like a good idea, since it means the
+ * user's last menu position is remembered (so a back
+ * action still works as expected after switching to the
+ * new top level menu) - but the issue here is that the
+ * menu stack can easily balloon to 'infinite' size,
+ * which we simply cannot allow.
+ * So we choose option 2 instead.
+ * Thus, if the current menu stack size is greater than
+ * 1, flush it all away...
+ * Note: As far as I can tell, this if functionally
+ * identical to just triggering multiple 'back' actions,
+ * and so should be 'safe' */
+ if (materialui_list_get_size(mui, MENU_LIST_PLAIN) > 1)
+ {
+ stack_flushed = true;
+ menu_entries_flush_stack(msg_hash_to_str(MENU_ENUM_LABEL_MAIN_MENU), 0);
+ /* Clear this, just in case... */
+ filebrowser_clear_type();
+ }
+ /* Get current stack
+ * (stack size should be zero here, but account
+ * for unknown errors) */
menu_stack = menu_entries_get_menu_stack_ptr(0);
stack_size = menu_stack->size;
+ /* Sanity check
+ * Note: if this fails, then 'stack flushed'
+ * status is irrelevant... */
+ if (stack_size < 1)
+ return false;
+
+ /* Delete existing label */
if (menu_stack->list[stack_size - 1].label)
free(menu_stack->list[stack_size - 1].label);
menu_stack->list[stack_size - 1].label = NULL;
- switch (mui->categories_selection_ptr)
+ /* Assign new label/type */
+ switch (target_tab->type)
{
- case MUI_SYSTEM_TAB_MAIN:
- menu_stack->list[stack_size - 1].label =
- strdup(msg_hash_to_str(MENU_ENUM_LABEL_MAIN_MENU));
- menu_stack->list[stack_size - 1].type =
- MENU_SETTINGS;
- break;
- case MUI_SYSTEM_TAB_PLAYLISTS:
+ case MUI_NAV_BAR_MENU_TAB_PLAYLISTS:
menu_stack->list[stack_size - 1].label =
strdup(msg_hash_to_str(MENU_ENUM_LABEL_PLAYLISTS_TAB));
menu_stack->list[stack_size - 1].type =
MENU_PLAYLISTS_TAB;
break;
- case MUI_SYSTEM_TAB_SETTINGS:
+ case MUI_NAV_BAR_MENU_TAB_SETTINGS:
menu_stack->list[stack_size - 1].label =
strdup(msg_hash_to_str(MENU_ENUM_LABEL_SETTINGS_TAB));
menu_stack->list[stack_size - 1].type =
MENU_SETTINGS;
break;
+ case MUI_NAV_BAR_MENU_TAB_MAIN:
+ default:
+ menu_stack->list[stack_size - 1].label =
+ strdup(msg_hash_to_str(MENU_ENUM_LABEL_MAIN_MENU));
+ menu_stack->list[stack_size - 1].type =
+ MENU_SETTINGS;
+ break;
}
+
+ return stack_flushed;
}
/* This callback is not caching anything. We use it to navigate the tabs
@@ -3045,45 +4290,53 @@ static void materialui_preswitch_tabs(materialui_handle_t *mui, unsigned action)
static void materialui_list_cache(void *data,
enum menu_list_type type, unsigned action)
{
- size_t list_size;
- materialui_handle_t *mui = (materialui_handle_t*)data;
+ materialui_handle_t *mui = (materialui_handle_t*)data;
if (!mui)
return;
- mui->need_compute = true;
- list_size = MUI_SYSTEM_TAB_END;
+ mui->need_compute = true;
+ mui->nav_bar.menu_navigation_wrapped = false;
switch (type)
{
case MENU_LIST_PLAIN:
break;
case MENU_LIST_HORIZONTAL:
- mui->categories_selection_ptr_old = mui->categories_selection_ptr;
-
- switch (action)
{
- case MENU_ACTION_LEFT:
- if (mui->categories_selection_ptr == 0)
- {
- mui->categories_selection_ptr = list_size;
- mui->categories_active_idx = (unsigned)(list_size - 1);
- }
- else
- mui->categories_selection_ptr--;
- break;
- default:
- if (mui->categories_selection_ptr == list_size)
- {
- mui->categories_selection_ptr = 0;
- mui->categories_active_idx = 1;
- }
- else
- mui->categories_selection_ptr++;
- break;
- }
+ int target_tab_index = 0;
- materialui_preswitch_tabs(mui, action);
+ switch (action)
+ {
+ case MENU_ACTION_LEFT:
+
+ target_tab_index = (int)mui->nav_bar.active_menu_tab_index - 1;
+
+ if (target_tab_index < 0)
+ {
+ target_tab_index = (int)mui->nav_bar.num_menu_tabs - 1;
+ mui->nav_bar.menu_navigation_wrapped = true;
+ }
+
+ break;
+ default:
+
+ target_tab_index = (int)mui->nav_bar.active_menu_tab_index + 1;
+
+ if (target_tab_index >= mui->nav_bar.num_menu_tabs)
+ {
+ target_tab_index = 0;
+ mui->nav_bar.menu_navigation_wrapped = true;
+ }
+
+ break;
+ }
+
+ /* Note: Since this is only called when we are at
+ * the top level of the menu, this will never cause
+ * a stack flush */
+ materialui_preswitch_tabs(mui, &mui->nav_bar.menu_tabs[target_tab_index]);
+ }
break;
default:
break;
@@ -3291,7 +4544,7 @@ static size_t materialui_list_get_selection(void *data)
if (!mui)
return 0;
- return mui->categories_selection_ptr;
+ return (size_t)mui->nav_bar.active_menu_tab_index;
}
/* Pointer down event
@@ -3372,14 +4625,14 @@ static int materialui_pointer_up_swipe_horz_plain_list(
else
{
float content_height_fraction = mui->content_height * 0.1f;
- float display_height = (int)height - (int)header_height - mui->tabs_height;
+ float display_height = (int)height - (int)header_height - (int)mui->nav_bar_layout_height;
float scroll_offset = (display_height > content_height_fraction) ?
display_height : content_height_fraction;
materialui_animate_scroll(
mui,
mui->scroll_y + (scroll_up ? (scroll_offset * -1.0f) : scroll_offset),
- 166.0f);
+ MUI_ANIM_DURATION_SCROLL);
}
return 0;
@@ -3400,13 +4653,21 @@ static int materialui_pointer_up_swipe_horz_default(
* back to the 'pointer down' position. In all other cases
* we do not. An entry is of the 'settings' type if:
* - Selection pointer remains the same after MENU_ACTION event
- * - Entry has a value
+ * - Entry value type is:
+ * > MUI_ENTRY_VALUE_TEXT
+ * > MUI_ENTRY_VALUE_SWITCH_ON
+ * > MUI_ENTRY_VALUE_SWITCH_OFF
* Note: cannot use input (argument) entry, since this
* will always have a blank value component */
if (selection == new_selection)
{
+ const char *entry_value = NULL;
+ unsigned entry_type = 0;
+ enum msg_file_type entry_file_type = FILE_TYPE_NONE;
+ enum materialui_entry_value_type entry_value_type = MUI_ENTRY_VALUE_NONE;
menu_entry_t last_entry;
+ /* Get entry */
menu_entry_init(&last_entry);
last_entry.path_enabled = false;
last_entry.label_enabled = false;
@@ -3415,17 +4676,95 @@ static int materialui_pointer_up_swipe_horz_default(
menu_entry_get(&last_entry, 0, selection, NULL, true);
- if (!string_is_empty(last_entry.value))
+ /* Parse entry */
+ menu_entry_get_value(&last_entry, &entry_value);
+ entry_type = menu_entry_get_type_new(&last_entry);
+ entry_file_type = msg_hash_to_file_type(msg_hash_calculate(entry_value));
+ entry_value_type = materialui_get_entry_value_type(
+ mui, entry_value, last_entry.checked, entry_type, entry_file_type);
+
+ /* If entry has a 'settings' type, reset scroll position */
+ if ((entry_value_type == MUI_ENTRY_VALUE_TEXT) ||
+ (entry_value_type == MUI_ENTRY_VALUE_SWITCH_ON) ||
+ (entry_value_type == MUI_ENTRY_VALUE_SWITCH_OFF))
materialui_animate_scroll(
mui,
mui->pointer_start_scroll_y,
- 83.0f);
+ MUI_ANIM_DURATION_SCROLL_RESET);
}
}
return ret;
}
+static int materialui_pointer_up_nav_bar(
+ materialui_handle_t *mui,
+ unsigned x, unsigned y, unsigned width, unsigned height, unsigned selection,
+ menu_file_list_cbs_t *cbs, menu_entry_t *entry, unsigned action)
+{
+ unsigned num_tabs = mui->nav_bar.num_menu_tabs + MUI_NAV_BAR_NUM_ACTION_TABS;
+ unsigned tab_index;
+
+ /* Determine tab 'index' - integer corresponding
+ * to physical location on screen */
+ if (mui->nav_bar.location == MUI_NAV_BAR_LOCATION_RIGHT)
+ tab_index = y / (height / num_tabs);
+ else
+ tab_index = x / (width / num_tabs);
+
+ /* Check if this is an action tab */
+ if ((tab_index == 0) || (tab_index >= num_tabs - 1))
+ {
+ materialui_nav_bar_action_tab_t *target_tab = NULL;
+
+ if (mui->nav_bar.location == MUI_NAV_BAR_LOCATION_RIGHT)
+ target_tab = (tab_index == 0) ?
+ &mui->nav_bar.resume_tab : &mui->nav_bar.back_tab;
+ else
+ target_tab = (tab_index == 0) ?
+ &mui->nav_bar.back_tab : &mui->nav_bar.resume_tab;
+
+ switch (target_tab->type)
+ {
+ case MUI_NAV_BAR_ACTION_TAB_BACK:
+ if (target_tab->enabled)
+ return menu_entry_action(entry, selection, MENU_ACTION_CANCEL);
+ break;
+ case MUI_NAV_BAR_ACTION_TAB_RESUME:
+ if (target_tab->enabled)
+ return command_event(CMD_EVENT_MENU_TOGGLE, NULL) ? 0 : -1;
+ break;
+ default:
+ break;
+ }
+ }
+ /* Tab is a menu tab */
+ else
+ {
+ materialui_nav_bar_menu_tab_t *target_tab =
+ &mui->nav_bar.menu_tabs[tab_index - 1];
+
+ if (!target_tab->active && cbs && cbs->action_content_list_switch)
+ {
+ file_list_t *selection_buf = menu_entries_get_selection_buf_ptr(0);
+ file_list_t *menu_stack = menu_entries_get_menu_stack_ptr(0);
+ bool stack_flushed = false;
+ int ret = 0;
+
+ stack_flushed = materialui_preswitch_tabs(mui, target_tab);
+
+ ret = cbs->action_content_list_switch(
+ selection_buf, menu_stack, "", "", 0);
+
+ mui->menu_stack_flushed = stack_flushed;
+
+ return ret;
+ }
+ }
+
+ return 0;
+}
+
/* Pointer up event */
static int materialui_pointer_up(void *userdata,
unsigned x, unsigned y, unsigned ptr,
@@ -3450,19 +4789,24 @@ static int materialui_pointer_up(void *userdata,
case MENU_INPUT_GESTURE_TAP:
case MENU_INPUT_GESTURE_SHORT_PRESS:
{
+ /* Tap/press navigation bar: perform tab-specific action */
+ if ((y > height - mui->nav_bar_layout_height) ||
+ (x > width - mui->nav_bar_layout_width))
+ return materialui_pointer_up_nav_bar(
+ mui, x, y, width, height, (unsigned)selection, cbs, entry, action);
/* Tap/press header: Menu back/cancel, or search */
- if (y < header_height)
+ else if (y < header_height)
{
/* If this is a playlist or file list, enable
* search functionality */
if (mui->is_playlist || mui->is_file_list)
{
/* Check if user has touched search icon */
- if (x > (width - mui->icon_size))
+ if (x > width - mui->icon_size - mui->nav_bar_layout_width)
return menu_input_dialog_start_search() ? 0 : -1;
/* If not, add a little extra padding to minimise
* the risk of accidentally triggering a cancel */
- else if (x <= (width - (2 * mui->icon_size)))
+ else if (x <= width - (2 * mui->icon_size) - mui->nav_bar_layout_width)
return menu_entry_action(entry, (unsigned)selection, MENU_ACTION_CANCEL);
}
/* If this is not a playlist or file list, a tap/press
@@ -3471,32 +4815,10 @@ static int materialui_pointer_up(void *userdata,
else
return menu_entry_action(entry, (unsigned)selection, MENU_ACTION_CANCEL);
}
- /* Tap/press tab bar: Switch to corresponding top-level
- * menu screen */
- else if (y > height - mui->tabs_height)
- {
- file_list_t *menu_stack = menu_entries_get_menu_stack_ptr(0);
- file_list_t *selection_buf = menu_entries_get_selection_buf_ptr(0);
-
- for (i = 0; i <= MUI_SYSTEM_TAB_END; i++)
- {
- unsigned tab_width = width / (MUI_SYSTEM_TAB_END + 1);
- unsigned start = tab_width * i;
-
- if ((x >= start) && (x < (start + tab_width)))
- {
- mui->categories_selection_ptr = i;
-
- materialui_preswitch_tabs(mui, action);
-
- if (cbs && cbs->action_content_list_switch)
- return cbs->action_content_list_switch(selection_buf, menu_stack,
- "", "", 0);
- }
- }
- }
/* Tap/press menu item: Activate and/or select item */
- else if (ptr < entries_end)
+ else if ((ptr < entries_end) &&
+ (x > mui->landscape_entry_margin) &&
+ (x < width - mui->landscape_entry_margin - mui->nav_bar_layout_width))
{
if (gesture == MENU_INPUT_GESTURE_TAP)
{
@@ -4029,22 +5351,12 @@ static void materialui_list_clear(file_list_t *list)
for (i = 0; i < size; ++i)
{
- menu_animation_ctx_subject_t subject;
- float *subjects[2];
materialui_node_t *node = (materialui_node_t*)
file_list_get_userdata_at_offset(list, i);
if (!node)
continue;
- subjects[0] = &node->line_height;
- subjects[1] = &node->y;
-
- subject.count = 2;
- subject.data = subjects;
-
- menu_animation_kill_by_subject(&subject);
-
file_list_free_userdata(list, i);
}
}
diff --git a/menu/drivers_display/menu_display_gl.c b/menu/drivers_display/menu_display_gl.c
index eff96eb268..c597b7c7cd 100644
--- a/menu/drivers_display/menu_display_gl.c
+++ b/menu/drivers_display/menu_display_gl.c
@@ -147,8 +147,10 @@ menu_display_gl_discard_draw_rectangle(menu_display_ctx_draw_t *draw,
video_frame_info_t *video_info
)
{
- static bool mali_4xx_detected = false;
- static bool scissor_inited = false;
+ static bool mali_4xx_detected = false;
+ static bool scissor_inited = false;
+ static unsigned last_video_width = 0;
+ static unsigned last_video_height = 0;
if (!scissor_inited)
{
@@ -156,12 +158,11 @@ menu_display_gl_discard_draw_rectangle(menu_display_ctx_draw_t *draw,
const char *gpu_device_string = NULL;
scissor_inited = true;
- if ((scx0 + scx1 + scy0 + scy1) == 0)
- scissor_set_rectangle(0,
- video_info->width - 1,
- 0,
- video_info->height - 1,
- 0);
+ scissor_set_rectangle(0,
+ video_info->width - 1,
+ 0,
+ video_info->height - 1,
+ 0);
/* TODO/FIXME - This might be thread unsafe in the long run -
* preferably call this once outside of the menu display driver
@@ -181,20 +182,39 @@ menu_display_gl_discard_draw_rectangle(menu_display_ctx_draw_t *draw,
}
}
}
+
+ last_video_width = video_info->width;
+ last_video_height = video_info->height;
}
- /* discards not only out-of-bounds scissoring,
+ /* Early out, to minimise performance impact on
+ * non-mali_4xx devices */
+ if (!mali_4xx_detected)
+ return false;
+
+ /* Have to update scissor_set_rectangle() if the
+ * video dimensions change */
+ if ((video_info->width != last_video_width) ||
+ (video_info->height != last_video_height))
+ {
+ scissor_set_rectangle(0,
+ video_info->width - 1,
+ 0,
+ video_info->height - 1,
+ 0);
+
+ last_video_width = video_info->width;
+ last_video_height = video_info->height;
+ }
+
+ /* Discards not only out-of-bounds scissoring,
* but also out-of-view draws.
*
* This is intentional.
*/
- if (mali_4xx_detected &&
- scissor_is_outside_rectangle(
- draw->x, draw->x + draw->width - 1,
- draw->y, draw->y + draw->height - 1))
- return true;
-
- return false;
+ return scissor_is_outside_rectangle(
+ draw->x, draw->x + draw->width - 1,
+ draw->y, draw->y + draw->height - 1);
}
#endif
diff --git a/menu/menu_defines.h b/menu/menu_defines.h
index d247b4cb93..decc5a56ed 100644
--- a/menu/menu_defines.h
+++ b/menu/menu_defines.h
@@ -154,9 +154,29 @@ enum materialui_color_theme
MATERIALUI_THEME_MATERIALUI,
MATERIALUI_THEME_MATERIALUI_DARK,
MATERIALUI_THEME_OZONE_DARK,
+ MATERIALUI_THEME_NORD,
+ MATERIALUI_THEME_GRUVBOX_DARK,
+ MATERIALUI_THEME_SOLARIZED_DARK,
+ MATERIALUI_THEME_CUTIE_BLUE,
+ MATERIALUI_THEME_CUTIE_CYAN,
+ MATERIALUI_THEME_CUTIE_GREEN,
+ MATERIALUI_THEME_CUTIE_ORANGE,
+ MATERIALUI_THEME_CUTIE_PINK,
+ MATERIALUI_THEME_CUTIE_PURPLE,
+ MATERIALUI_THEME_CUTIE_RED,
+ MATERIALUI_THEME_VIRTUAL_BOY,
MATERIALUI_THEME_LAST
};
+enum materialui_transition_animation
+{
+ MATERIALUI_TRANSITION_ANIM_AUTO = 0,
+ MATERIALUI_TRANSITION_ANIM_FADE,
+ MATERIALUI_TRANSITION_ANIM_SLIDE,
+ MATERIALUI_TRANSITION_ANIM_NONE,
+ MATERIALUI_TRANSITION_ANIM_LAST
+};
+
enum xmb_color_theme
{
XMB_THEME_LEGACY_RED = 0,
diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c
index 0234705928..fd560a7780 100644
--- a/menu/menu_displaylist.c
+++ b/menu/menu_displaylist.c
@@ -3827,6 +3827,7 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct
{MENU_ENUM_LABEL_AI_SERVICE_MODE, PARSE_ONLY_UINT, true },
{MENU_ENUM_LABEL_AI_SERVICE_URL, PARSE_ONLY_STRING, true },
{MENU_ENUM_LABEL_AI_SERVICE_ENABLE, PARSE_ONLY_BOOL, true},
+ {MENU_ENUM_LABEL_AI_SERVICE_PAUSE, PARSE_ONLY_BOOL, true},
{MENU_ENUM_LABEL_AI_SERVICE_SOURCE_LANG, PARSE_ONLY_UINT, true},
{MENU_ENUM_LABEL_AI_SERVICE_TARGET_LANG, PARSE_ONLY_UINT, true},
};
@@ -5225,6 +5226,7 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct
{
menu_displaylist_build_info_t build_list[] = {
{MENU_ENUM_LABEL_VIDEO_SHARED_CONTEXT, PARSE_ONLY_BOOL},
+ {MENU_ENUM_LABEL_DRIVER_SWITCH_ENABLE, PARSE_ONLY_BOOL},
{MENU_ENUM_LABEL_DUMMY_ON_CORE_SHUTDOWN, PARSE_ONLY_BOOL},
{MENU_ENUM_LABEL_CHECK_FOR_MISSING_FIRMWARE, PARSE_ONLY_BOOL},
{MENU_ENUM_LABEL_VIDEO_ALLOW_ROTATE, PARSE_ONLY_BOOL},
@@ -5444,7 +5446,10 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct
{MENU_ENUM_LABEL_OZONE_COLLAPSE_SIDEBAR, PARSE_ONLY_BOOL},
{MENU_ENUM_LABEL_OZONE_TRUNCATE_PLAYLIST_NAME, PARSE_ONLY_BOOL},
{MENU_ENUM_LABEL_MATERIALUI_ICONS_ENABLE, PARSE_ONLY_BOOL},
+ {MENU_ENUM_LABEL_MATERIALUI_OPTIMIZE_LANDSCAPE_LAYOUT, PARSE_ONLY_BOOL},
+ {MENU_ENUM_LABEL_MATERIALUI_AUTO_ROTATE_NAV_BAR, PARSE_ONLY_BOOL},
{MENU_ENUM_LABEL_MATERIALUI_MENU_COLOR_THEME, PARSE_ONLY_UINT},
+ {MENU_ENUM_LABEL_MATERIALUI_MENU_TRANSITION_ANIMATION, PARSE_ONLY_UINT},
{MENU_ENUM_LABEL_MATERIALUI_MENU_HEADER_OPACITY, PARSE_ONLY_FLOAT},
{MENU_ENUM_LABEL_MATERIALUI_MENU_FOOTER_OPACITY, PARSE_ONLY_FLOAT},
{MENU_ENUM_LABEL_MENU_USE_PREFERRED_SYSTEM_COLOR_THEME, PARSE_ONLY_BOOL },
diff --git a/menu/menu_driver.c b/menu/menu_driver.c
index 5d3949a994..a90f9da314 100644
--- a/menu/menu_driver.c
+++ b/menu/menu_driver.c
@@ -2284,10 +2284,24 @@ void menu_display_draw(menu_display_ctx_draw_t *draw,
return;
if (draw->width <= 0)
return;
-
menu_disp->draw(draw, video_info);
}
+void menu_display_draw_blend(menu_display_ctx_draw_t *draw,
+ video_frame_info_t *video_info)
+{
+ if (!menu_disp || !draw || !menu_disp->draw)
+ return;
+
+ if (draw->height <= 0)
+ return;
+ if (draw->width <= 0)
+ return;
+ menu_display_blend_begin(video_info);
+ menu_disp->draw(draw, video_info);
+ menu_display_blend_end(video_info);
+}
+
void menu_display_draw_pipeline(menu_display_ctx_draw_t *draw,
video_frame_info_t *video_info)
{
@@ -3185,6 +3199,35 @@ bool menu_display_reset_textures_list(
}
+bool menu_display_reset_textures_list_buffer(
+ uintptr_t *item, enum texture_filter_type filter_type,
+ void* buffer, unsigned buffer_len, enum image_type_enum image_type,
+ unsigned *width, unsigned *height)
+{
+ struct texture_image ti;
+
+ ti.width = 0;
+ ti.height = 0;
+ ti.pixels = NULL;
+ ti.supports_rgba = video_driver_supports_rgba();
+
+ if (!image_texture_load_buffer(&ti, image_type, buffer, buffer_len))
+ return false;
+
+ if (width)
+ *width = ti.width;
+
+ if (height)
+ *height = ti.height;
+
+ /* if the poke interface doesn't support texture load then return false */
+ if (!video_driver_texture_load(&ti, filter_type, item))
+ return false;
+ image_texture_free(&ti);
+ return true;
+}
+
+
/**
* menu_driver_find_handle:
* @idx : index of driver to get handle to.
diff --git a/menu/menu_driver.h b/menu/menu_driver.h
index 051fab0e58..c0a5685e35 100644
--- a/menu/menu_driver.h
+++ b/menu/menu_driver.h
@@ -27,6 +27,7 @@
#include
#include
#include
+#include
#include
#include "menu_defines.h"
@@ -583,6 +584,8 @@ void menu_display_clear_color(menu_display_ctx_clearcolor_t *color,
video_frame_info_t *video_info);
void menu_display_draw(menu_display_ctx_draw_t *draw,
video_frame_info_t *video_info);
+void menu_display_draw_blend(menu_display_ctx_draw_t *draw,
+ video_frame_info_t *video_info);
void menu_display_draw_keyboard(
uintptr_t hover_texture,
const font_data_t *font,
@@ -680,6 +683,11 @@ bool menu_display_reset_textures_list(
uintptr_t *item, enum texture_filter_type filter_type,
unsigned *width, unsigned *height);
+bool menu_display_reset_textures_list_buffer(
+ uintptr_t *item, enum texture_filter_type filter_type,
+ void* buffer, unsigned buffer_len, enum image_type_enum image_type,
+ unsigned *width, unsigned *height);
+
/* Returns the OSK key at a given position */
int menu_display_osk_ptr_at_pos(void *data, int x, int y,
unsigned width, unsigned height);
diff --git a/menu/menu_setting.c b/menu/menu_setting.c
index 20fd566d8d..41c5f1f373 100644
--- a/menu/menu_setting.c
+++ b/menu/menu_setting.c
@@ -3868,6 +3868,95 @@ static void setting_get_string_representation_uint_materialui_menu_color_theme(
msg_hash_to_str(
MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_OZONE_DARK), len);
break;
+ case MATERIALUI_THEME_NORD:
+ strlcpy(s,
+ msg_hash_to_str(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_NORD), len);
+ break;
+ case MATERIALUI_THEME_GRUVBOX_DARK:
+ strlcpy(s,
+ msg_hash_to_str(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_GRUVBOX_DARK), len);
+ break;
+ case MATERIALUI_THEME_SOLARIZED_DARK:
+ strlcpy(s,
+ msg_hash_to_str(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_SOLARIZED_DARK), len);
+ break;
+ case MATERIALUI_THEME_CUTIE_BLUE:
+ strlcpy(s,
+ msg_hash_to_str(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_CUTIE_BLUE), len);
+ break;
+ case MATERIALUI_THEME_CUTIE_CYAN:
+ strlcpy(s,
+ msg_hash_to_str(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_CUTIE_CYAN), len);
+ break;
+ case MATERIALUI_THEME_CUTIE_GREEN:
+ strlcpy(s,
+ msg_hash_to_str(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_CUTIE_GREEN), len);
+ break;
+ case MATERIALUI_THEME_CUTIE_ORANGE:
+ strlcpy(s,
+ msg_hash_to_str(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_CUTIE_ORANGE), len);
+ break;
+ case MATERIALUI_THEME_CUTIE_PINK:
+ strlcpy(s,
+ msg_hash_to_str(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_CUTIE_PINK), len);
+ break;
+ case MATERIALUI_THEME_CUTIE_PURPLE:
+ strlcpy(s,
+ msg_hash_to_str(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_CUTIE_PURPLE), len);
+ break;
+ case MATERIALUI_THEME_CUTIE_RED:
+ strlcpy(s,
+ msg_hash_to_str(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_CUTIE_RED), len);
+ break;
+ case MATERIALUI_THEME_VIRTUAL_BOY:
+ strlcpy(s,
+ msg_hash_to_str(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_VIRTUAL_BOY), len);
+ break;
+ default:
+ break;
+ }
+}
+
+static void setting_get_string_representation_uint_materialui_menu_transition_animation(
+ rarch_setting_t *setting,
+ char *s, size_t len)
+{
+ if (!setting)
+ return;
+
+ switch (*setting->value.target.unsigned_integer)
+ {
+ case MATERIALUI_TRANSITION_ANIM_AUTO:
+ strlcpy(s,
+ msg_hash_to_str(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_TRANSITION_ANIM_AUTO), len);
+ break;
+ case MATERIALUI_TRANSITION_ANIM_FADE:
+ strlcpy(s,
+ msg_hash_to_str(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_TRANSITION_ANIM_FADE), len);
+ break;
+ case MATERIALUI_TRANSITION_ANIM_SLIDE:
+ strlcpy(s,
+ msg_hash_to_str(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_TRANSITION_ANIM_SLIDE), len);
+ break;
+ case MATERIALUI_TRANSITION_ANIM_NONE:
+ strlcpy(s,
+ msg_hash_to_str(
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_TRANSITION_ANIM_NONE), len);
+ break;
default:
break;
}
@@ -7822,8 +7911,8 @@ static bool setting_append_list(
break;
case SETTINGS_LIST_CORE:
{
- unsigned i;
- struct bool_entry bool_entries[5];
+ unsigned i, listing = 0;
+ struct bool_entry bool_entries[6];
START_GROUP(list, list_info, &group_info,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_SETTINGS), parent_group);
@@ -7836,35 +7925,47 @@ static bool setting_append_list(
START_SUB_GROUP(list, list_info, "State", &group_info, &subgroup_info,
parent_group);
- bool_entries[0].target = &settings->bools.video_shared_context;
- bool_entries[0].name_enum_idx = MENU_ENUM_LABEL_VIDEO_SHARED_CONTEXT;
- bool_entries[0].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_VIDEO_SHARED_CONTEXT;
- bool_entries[0].default_value = DEFAULT_VIDEO_SHARED_CONTEXT;
- bool_entries[0].flags = SD_FLAG_ADVANCED;
+ bool_entries[listing].target = &settings->bools.video_shared_context;
+ bool_entries[listing].name_enum_idx = MENU_ENUM_LABEL_VIDEO_SHARED_CONTEXT;
+ bool_entries[listing].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_VIDEO_SHARED_CONTEXT;
+ bool_entries[listing].default_value = DEFAULT_VIDEO_SHARED_CONTEXT;
+ bool_entries[listing].flags = SD_FLAG_ADVANCED;
+ listing++;
- bool_entries[1].target = &settings->bools.load_dummy_on_core_shutdown;
- bool_entries[1].name_enum_idx = MENU_ENUM_LABEL_DUMMY_ON_CORE_SHUTDOWN;
- bool_entries[1].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_DUMMY_ON_CORE_SHUTDOWN;
- bool_entries[1].default_value = DEFAULT_LOAD_DUMMY_ON_CORE_SHUTDOWN;
- bool_entries[1].flags = SD_FLAG_ADVANCED;
+ bool_entries[listing].target = &settings->bools.driver_switch_enable;
+ bool_entries[listing].name_enum_idx = MENU_ENUM_LABEL_DRIVER_SWITCH_ENABLE;
+ bool_entries[listing].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_DRIVER_SWITCH_ENABLE;
+ bool_entries[listing].default_value = DEFAULT_DRIVER_SWITCH_ENABLE;
+ bool_entries[listing].flags = SD_FLAG_ADVANCED;
+ listing++;
- bool_entries[2].target = &settings->bools.set_supports_no_game_enable;
- bool_entries[2].name_enum_idx = MENU_ENUM_LABEL_CORE_SET_SUPPORTS_NO_CONTENT_ENABLE;
- bool_entries[2].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_CORE_SET_SUPPORTS_NO_CONTENT_ENABLE;
- bool_entries[2].default_value = true;
- bool_entries[2].flags = SD_FLAG_ADVANCED;
+ bool_entries[listing].target = &settings->bools.load_dummy_on_core_shutdown;
+ bool_entries[listing].name_enum_idx = MENU_ENUM_LABEL_DUMMY_ON_CORE_SHUTDOWN;
+ bool_entries[listing].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_DUMMY_ON_CORE_SHUTDOWN;
+ bool_entries[listing].default_value = DEFAULT_LOAD_DUMMY_ON_CORE_SHUTDOWN;
+ bool_entries[listing].flags = SD_FLAG_ADVANCED;
+ listing++;
- bool_entries[3].target = &settings->bools.check_firmware_before_loading;
- bool_entries[3].name_enum_idx = MENU_ENUM_LABEL_CHECK_FOR_MISSING_FIRMWARE;
- bool_entries[3].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_CHECK_FOR_MISSING_FIRMWARE;
- bool_entries[3].default_value = true;
- bool_entries[3].flags = SD_FLAG_ADVANCED;
+ bool_entries[listing].target = &settings->bools.set_supports_no_game_enable;
+ bool_entries[listing].name_enum_idx = MENU_ENUM_LABEL_CORE_SET_SUPPORTS_NO_CONTENT_ENABLE;
+ bool_entries[listing].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_CORE_SET_SUPPORTS_NO_CONTENT_ENABLE;
+ bool_entries[listing].default_value = true;
+ bool_entries[listing].flags = SD_FLAG_ADVANCED;
+ listing++;
- bool_entries[4].target = &settings->bools.video_allow_rotate;
- bool_entries[4].name_enum_idx = MENU_ENUM_LABEL_VIDEO_ALLOW_ROTATE;
- bool_entries[4].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_VIDEO_ALLOW_ROTATE;
- bool_entries[4].default_value = DEFAULT_ALLOW_ROTATE;
- bool_entries[4].flags = SD_FLAG_ADVANCED;
+ bool_entries[listing].target = &settings->bools.check_firmware_before_loading;
+ bool_entries[listing].name_enum_idx = MENU_ENUM_LABEL_CHECK_FOR_MISSING_FIRMWARE;
+ bool_entries[listing].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_CHECK_FOR_MISSING_FIRMWARE;
+ bool_entries[listing].default_value = true;
+ bool_entries[listing].flags = SD_FLAG_ADVANCED;
+ listing++;
+
+ bool_entries[listing].target = &settings->bools.video_allow_rotate;
+ bool_entries[listing].name_enum_idx = MENU_ENUM_LABEL_VIDEO_ALLOW_ROTATE;
+ bool_entries[listing].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_VIDEO_ALLOW_ROTATE;
+ bool_entries[listing].default_value = DEFAULT_ALLOW_ROTATE;
+ bool_entries[listing].flags = SD_FLAG_ADVANCED;
+ listing++;
for (i = 0; i < ARRAY_SIZE(bool_entries); i++)
{
@@ -12858,7 +12959,7 @@ static bool setting_append_list(
&settings->uints.menu_materialui_color_theme,
MENU_ENUM_LABEL_MATERIALUI_MENU_COLOR_THEME,
MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME,
- MATERIALUI_THEME_BLUE,
+ DEFAULT_MATERIALUI_THEME,
&group_info,
&subgroup_info,
parent_group,
@@ -12870,6 +12971,53 @@ static bool setting_append_list(
menu_settings_list_current_add_range(list, list_info, 0, MATERIALUI_THEME_LAST-1, 1, true, true);
(*list)[list_info->index - 1].ui_type = ST_UI_TYPE_UINT_COMBOBOX;
+ CONFIG_UINT(
+ list, list_info,
+ &settings->uints.menu_materialui_transition_animation,
+ MENU_ENUM_LABEL_MATERIALUI_MENU_TRANSITION_ANIMATION,
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_TRANSITION_ANIMATION,
+ DEFAULT_MATERIALUI_TRANSITION_ANIM,
+ &group_info,
+ &subgroup_info,
+ parent_group,
+ general_write_handler,
+ general_read_handler);
+ (*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
+ (*list)[list_info->index - 1].get_string_representation =
+ &setting_get_string_representation_uint_materialui_menu_transition_animation;
+ menu_settings_list_current_add_range(list, list_info, 0, MATERIALUI_TRANSITION_ANIM_LAST-1, 1, true, true);
+ (*list)[list_info->index - 1].ui_type = ST_UI_TYPE_UINT_COMBOBOX;
+
+ CONFIG_BOOL(
+ list, list_info,
+ &settings->bools.menu_materialui_optimize_landscape_layout,
+ MENU_ENUM_LABEL_MATERIALUI_OPTIMIZE_LANDSCAPE_LAYOUT,
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_OPTIMIZE_LANDSCAPE_LAYOUT,
+ DEFAULT_MATERIALUI_OPTIMIZE_LANDSCAPE_LAYOUT,
+ MENU_ENUM_LABEL_VALUE_OFF,
+ MENU_ENUM_LABEL_VALUE_ON,
+ &group_info,
+ &subgroup_info,
+ parent_group,
+ general_write_handler,
+ general_read_handler,
+ SD_FLAG_NONE);
+
+ CONFIG_BOOL(
+ list, list_info,
+ &settings->bools.menu_materialui_auto_rotate_nav_bar,
+ MENU_ENUM_LABEL_MATERIALUI_AUTO_ROTATE_NAV_BAR,
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_AUTO_ROTATE_NAV_BAR,
+ DEFAULT_MATERIALUI_AUTO_ROTATE_NAV_BAR,
+ MENU_ENUM_LABEL_VALUE_OFF,
+ MENU_ENUM_LABEL_VALUE_ON,
+ &group_info,
+ &subgroup_info,
+ parent_group,
+ general_write_handler,
+ general_read_handler,
+ SD_FLAG_NONE);
+
/* TODO: These should be removed entirely, but just
* comment out for now in case users complain...
CONFIG_FLOAT(
@@ -13412,6 +13560,21 @@ static bool setting_append_list(
general_read_handler,
SD_FLAG_NONE);
+ CONFIG_BOOL(
+ list, list_info,
+ &settings->bools.ai_service_pause,
+ MENU_ENUM_LABEL_AI_SERVICE_PAUSE,
+ MENU_ENUM_LABEL_VALUE_AI_SERVICE_PAUSE,
+ DEFAULT_AI_SERVICE_PAUSE,
+ MENU_ENUM_LABEL_VALUE_OFF,
+ MENU_ENUM_LABEL_VALUE_ON,
+ &group_info,
+ &subgroup_info,
+ parent_group,
+ general_write_handler,
+ general_read_handler,
+ SD_FLAG_NONE);
+
CONFIG_UINT(
list, list_info,
&settings->uints.ai_service_source_lang,
diff --git a/menu/widgets/menu_widgets.c b/menu/widgets/menu_widgets.c
index dd23e1c3f8..6d8bf789ce 100644
--- a/menu/widgets/menu_widgets.c
+++ b/menu/widgets/menu_widgets.c
@@ -261,6 +261,12 @@ static menu_timer_t screenshot_timer;
static unsigned screenshot_shotname_length;
+/* AI Service Overlay */
+static int ai_service_overlay_state = 0;
+static unsigned ai_service_overlay_width = 0;
+static unsigned ai_service_overlay_height = 0;
+static menu_texture_item ai_service_overlay_texture = 0;
+
/* Generic message */
static menu_timer_t generic_message_timer;
static float generic_message_alpha = 0.0f;
@@ -709,6 +715,55 @@ static void menu_widgets_draw_icon(
menu_display_draw(&draw, video_info);
}
+
+static void menu_widgets_draw_icon_blend(
+ video_frame_info_t *video_info,
+ unsigned icon_width,
+ unsigned icon_height,
+ uintptr_t texture,
+ float x, float y,
+ unsigned width, unsigned height,
+ float rotation, float scale_factor,
+ float *color)
+{
+ menu_display_ctx_rotate_draw_t rotate_draw;
+ menu_display_ctx_draw_t draw;
+ struct video_coords coords;
+ math_matrix_4x4 mymat;
+
+ if (!texture)
+ return;
+
+ rotate_draw.matrix = &mymat;
+ rotate_draw.rotation = rotation;
+ rotate_draw.scale_x = scale_factor;
+ rotate_draw.scale_y = scale_factor;
+ rotate_draw.scale_z = 1;
+ rotate_draw.scale_enable = true;
+
+ menu_display_rotate_z(&rotate_draw, video_info);
+
+ coords.vertices = 4;
+ coords.vertex = NULL;
+ coords.tex_coord = NULL;
+ coords.lut_tex_coord = NULL;
+ coords.color = color;
+
+ draw.x = x;
+ draw.y = height - y - icon_height;
+ draw.width = icon_width;
+ draw.height = icon_height;
+ draw.scale_factor = scale_factor;
+ draw.rotation = rotation;
+ draw.coords = &coords;
+ draw.matrix_data = &mymat;
+ draw.texture = texture;
+ draw.prim_type = MENU_DISPLAY_PRIM_TRIANGLESTRIP;
+ draw.pipeline.id = 0;
+
+ menu_display_draw_blend(&draw, video_info);
+}
+
static float menu_widgets_get_thumbnail_scale_factor(const float dst_width, const float dst_height,
const float image_width, const float image_height)
{
@@ -1134,7 +1189,6 @@ static void menu_widgets_draw_regular_msg(menu_widget_msg_t *msg, video_frame_in
(msg_queue_scissor_start_x + msg->width - simple_widget_padding*2) * msg->unfold, video_info->height);
}
-
if (msg_queue_has_icons)
{
menu_display_blend_begin(video_info);
@@ -1286,6 +1340,57 @@ void menu_widgets_frame(video_frame_info_t *video_info)
font_raster_regular.carr.coords.vertices = 0;
font_raster_bold.carr.coords.vertices = 0;
+ /* AI Service overlay */
+ if (ai_service_overlay_state > 0)
+ {
+ float outline_color[16] = {
+ 0.00, 1.00, 0.00, 1.00,
+ 0.00, 1.00, 0.00, 1.00,
+ 0.00, 1.00, 0.00, 1.00,
+ 0.00, 1.00, 0.00, 1.00,
+ };
+
+ menu_widgets_draw_icon_blend(video_info,
+ video_info->width, video_info->height,
+ ai_service_overlay_texture,
+ 0, 0,
+ video_info->width, video_info->height,
+ 0, 1, menu_widgets_pure_white
+ );
+ /* top line */
+ menu_display_draw_quad(video_info,
+ 0, 0,
+ video_info->width, 1,
+ video_info->width, video_info->height,
+ outline_color
+ );
+ /* bottom line */
+ menu_display_draw_quad(video_info,
+ 0, video_info->height-1,
+ video_info->width, 1,
+ video_info->width, video_info->height,
+ outline_color
+ );
+ /* left line */
+ menu_display_draw_quad(video_info,
+ 0, 0,
+ 1, video_info->height,
+ video_info->width, video_info->height,
+ outline_color
+ );
+ /* right line */
+ menu_display_draw_quad(video_info,
+ video_info->width-1, 0,
+ 1, video_info->height,
+ video_info->width, video_info->height,
+ outline_color
+ );
+
+ if (ai_service_overlay_state == 2)
+ ai_service_overlay_state = 3;
+ }
+
+
/* Libretro message */
if (libretro_message_alpha > 0.0f)
{
@@ -1957,6 +2062,9 @@ void menu_widgets_free(void)
menu_timer_kill(&libretro_message_timer);
menu_animation_kill_by_tag(&libretro_tag);
+ /* AI Service overlay */
+ /* ... */
+
/* Volume */
volume_alpha = 0.0f;
@@ -2014,6 +2122,46 @@ bool menu_widgets_set_fps_text(const char *new_fps_text)
return true;
}
+int menu_widgets_ai_service_overlay_get_state()
+{
+ return ai_service_overlay_state;
+}
+
+bool menu_widgets_ai_service_overlay_set_state(int state)
+{
+ ai_service_overlay_state = state;
+ return true;
+}
+
+
+
+bool menu_widgets_ai_service_overlay_load(
+ char* buffer, unsigned buffer_len, enum image_type_enum image_type)
+{
+ if (ai_service_overlay_state == 0)
+ {
+ bool res;
+ res = menu_display_reset_textures_list_buffer(
+ &ai_service_overlay_texture,
+ TEXTURE_FILTER_MIPMAP_LINEAR,
+ (void *) buffer, buffer_len, image_type,
+ &ai_service_overlay_width, &ai_service_overlay_height);
+ if (res)
+ ai_service_overlay_state = 1;
+ return res;
+ }
+ return true;
+}
+
+void menu_widgets_ai_service_overlay_unload()
+{
+ if (ai_service_overlay_state == 1)
+ {
+ video_driver_texture_unload(&ai_service_overlay_texture);
+ ai_service_overlay_state = 0;
+ }
+}
+
static void menu_widgets_screenshot_fadeout(void *userdata)
{
menu_animation_ctx_entry_t entry;
diff --git a/menu/widgets/menu_widgets.h b/menu/widgets/menu_widgets.h
index 3a12f65da2..7b1e6fd79f 100644
--- a/menu/widgets/menu_widgets.h
+++ b/menu/widgets/menu_widgets.h
@@ -55,6 +55,15 @@ void menu_widgets_iterate(unsigned width, unsigned height);
void menu_widgets_screenshot_taken(const char *shotname, const char *filename);
+/* AI Service functions */
+int menu_widgets_ai_service_overlay_get_state();
+bool menu_widgets_ai_service_overlay_set_state(int state);
+
+bool menu_widgets_ai_service_overlay_load(
+ char* buffer, unsigned buffer_len, enum image_type_enum image_type);
+void menu_widgets_ai_service_overlay_unload();
+
+
void menu_widgets_start_load_content_animation(const char *content_name, bool remove_extension);
void menu_widgets_cleanup_load_content_animation(void);
diff --git a/msg_hash.h b/msg_hash.h
index 16c4b81f0d..af30de0af8 100644
--- a/msg_hash.h
+++ b/msg_hash.h
@@ -517,6 +517,8 @@ enum msg_hash_enums
MENU_ENUM_LABEL_VALUE_AUTO,
MENU_LABEL(MATERIALUI_ICONS_ENABLE),
+ MENU_LABEL(MATERIALUI_OPTIMIZE_LANDSCAPE_LAYOUT),
+ MENU_LABEL(MATERIALUI_AUTO_ROTATE_NAV_BAR),
MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_CUSTOM,
MENU_ENUM_LABEL_VALUE_RGUI_MENU_COLOR_THEME_CLASSIC_RED,
@@ -603,6 +605,23 @@ enum msg_hash_enums
MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_MATERIALUI,
MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_MATERIALUI_DARK,
MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_OZONE_DARK,
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_NORD,
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_GRUVBOX_DARK,
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_SOLARIZED_DARK,
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_CUTIE_BLUE,
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_CUTIE_CYAN,
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_CUTIE_GREEN,
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_CUTIE_ORANGE,
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_CUTIE_PINK,
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_CUTIE_PURPLE,
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_CUTIE_RED,
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_COLOR_THEME_VIRTUAL_BOY,
+
+ MENU_LABEL(MATERIALUI_MENU_TRANSITION_ANIMATION),
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_TRANSITION_ANIM_AUTO,
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_TRANSITION_ANIM_FADE,
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_TRANSITION_ANIM_SLIDE,
+ MENU_ENUM_LABEL_VALUE_MATERIALUI_MENU_TRANSITION_ANIM_NONE,
MENU_ENUM_LABEL_VALUE_INPUT_POLL_TYPE_BEHAVIOR_LATE,
MENU_ENUM_LABEL_VALUE_INPUT_POLL_TYPE_BEHAVIOR_NORMAL,
@@ -867,6 +886,7 @@ enum msg_hash_enums
MENU_LABEL(VIDEO_GAMMA),
MENU_LABEL(VIDEO_ALLOW_ROTATE),
MENU_LABEL(VIDEO_SHARED_CONTEXT),
+ MENU_LABEL(DRIVER_SWITCH_ENABLE),
MENU_LABEL(VIDEO_THREADED),
MENU_LABEL(VIDEO_SWAP_INTERVAL),
@@ -1720,6 +1740,7 @@ enum msg_hash_enums
MENU_LABEL(AI_SERVICE_SOURCE_LANG),
MENU_LABEL(AI_SERVICE_URL),
MENU_LABEL(AI_SERVICE_ENABLE),
+ MENU_LABEL(AI_SERVICE_PAUSE),
MENU_LABEL(ON),
MENU_LABEL(OFF),
diff --git a/pkg/android/phoenix-legacy/AndroidManifest.xml b/pkg/android/phoenix-legacy/AndroidManifest.xml
index d7adc39416..1c84bc9de2 100644
--- a/pkg/android/phoenix-legacy/AndroidManifest.xml
+++ b/pkg/android/phoenix-legacy/AndroidManifest.xml
@@ -1,7 +1,7 @@
diff --git a/pkg/android/phoenix/AndroidManifest.xml b/pkg/android/phoenix/AndroidManifest.xml
index 8f46ddd861..b6ed848dae 100644
--- a/pkg/android/phoenix/AndroidManifest.xml
+++ b/pkg/android/phoenix/AndroidManifest.xml
@@ -2,7 +2,7 @@
diff --git a/retroarch.c b/retroarch.c
index 4de708c66c..579df2c704 100644
--- a/retroarch.c
+++ b/retroarch.c
@@ -2730,11 +2730,10 @@ static void handle_translation_cb(
int i = 0;
int start = -1;
char* found_string = NULL;
+ char* error_string = NULL;
int curr_state = 0;
- if (!is_paused && settings->uints.ai_service_mode != 1)
- goto finish;
-
+ RARCH_LOG("RESULT FROM AI SERVICE...\n");
if (!data || error)
goto finish;
@@ -2762,38 +2761,63 @@ static void handle_translation_cb(
if (curr_state == 1)/*image*/
{
- raw_image_file_data = (char*)unbase64(found_string,
+ raw_image_file_data = (char*)unbase64(found_string,
strlen(found_string),
&new_image_size);
- curr_state = 0;
+ curr_state = 0;
}
#ifdef HAVE_AUDIOMIXER
else if (curr_state == 2)
{
- raw_sound_data = (void*)unbase64(found_string,
+ raw_sound_data = (void*)unbase64(found_string,
strlen(found_string), &new_sound_size);
- curr_state = 0;
+ curr_state = 0;
}
#endif
+ else if (curr_state == 3)
+ {
+ error_string = (char*)malloc(i-start+1);
+ strlcpy(error_string, body_copy+start+1, i-start);
+ curr_state = 0;
+ }
else if (string_is_equal(found_string, "image"))
{
- curr_state = 1;
- free(found_string);
+ curr_state = 1;
+ free(found_string);
}
else if (string_is_equal(found_string, "sound"))
{
- curr_state = 2;
- free(found_string);
+ curr_state = 2;
+ free(found_string);
+ }
+ else if (string_is_equal(found_string, "error"))
+ {
+ curr_state = 3;
+ free(found_string);
}
else
+ {
curr_state = 0;
+ free(found_string);
+ }
start = -1;
}
}
i++;
}
- if (found_string)
- free(found_string);
+
+ if (string_is_equal(error_string, "No text found."))
+ {
+ RARCH_LOG("No text found...\n");
+#ifdef HAVE_MENU_WIDGETS
+ if (menu_widgets_paused)
+ {
+ /* In this case we have to unpause and then repause for a frame */
+ menu_widgets_ai_service_overlay_set_state(2);
+ command_event(CMD_EVENT_UNPAUSE, NULL);
+ }
+#endif
+ }
if (!raw_image_file_data && !raw_sound_data)
{
@@ -2806,140 +2830,193 @@ static void handle_translation_cb(
/* Get the video frame dimensions reference */
video_driver_cached_frame_get(&dummy_data, &width, &height, &pitch);
- if (raw_image_file_data[0] == 'B' && raw_image_file_data[1] == 'M')
+ /* try two different modes for text display *
+ * In the first mode, we use menu widget overlays, but they require
+ * the video poke interface to be able to load image buffers.
+ *
+ * The other method is to draw to the video buffer directly, which needs
+ * a software core to be running. */
+#ifdef HAVE_MENU_WIDGETS
+ if (video_driver_poke
+ && video_driver_poke->load_texture && video_driver_poke->unload_texture)
{
- /* This is a BMP file coming back. */
- /* Get image data (24 bit), and convert to the emulated pixel format */
- image_width =
- ((uint32_t) ((uint8_t)raw_image_file_data[21]) << 24) +
- ((uint32_t) ((uint8_t)raw_image_file_data[20]) << 16) +
- ((uint32_t) ((uint8_t)raw_image_file_data[19]) << 8) +
- ((uint32_t) ((uint8_t)raw_image_file_data[18]) << 0);
-
- image_height =
- ((uint32_t) ((uint8_t)raw_image_file_data[25]) << 24) +
- ((uint32_t) ((uint8_t)raw_image_file_data[24]) << 16) +
- ((uint32_t) ((uint8_t)raw_image_file_data[23]) << 8) +
- ((uint32_t) ((uint8_t)raw_image_file_data[22]) << 0);
- raw_image_data = malloc(image_width*image_height*3*sizeof(uint8_t));
- memcpy(raw_image_data,
- raw_image_file_data+54*sizeof(uint8_t),
- image_width*image_height*3*sizeof(uint8_t));
- }
- else if (raw_image_file_data[1] == 'P' && raw_image_file_data[2] == 'N' &&
- raw_image_file_data[3] == 'G')
- {
- rpng_t *rpng = NULL;
- /* PNG coming back from the url */
- image_width =
- ((uint32_t) ((uint8_t)raw_image_file_data[16])<<24)+
- ((uint32_t) ((uint8_t)raw_image_file_data[17])<<16)+
- ((uint32_t) ((uint8_t)raw_image_file_data[18])<<8)+
- ((uint32_t) ((uint8_t)raw_image_file_data[19])<<0);
- image_height =
- ((uint32_t) ((uint8_t)raw_image_file_data[20])<<24)+
- ((uint32_t) ((uint8_t)raw_image_file_data[21])<<16)+
- ((uint32_t) ((uint8_t)raw_image_file_data[22])<<8)+
- ((uint32_t) ((uint8_t)raw_image_file_data[23])<<0);
- rpng = rpng_alloc();
-
- if (!rpng)
+ bool ai_res;
+ enum image_type_enum image_type;
+ /* Write to overlay */
+ if (raw_image_file_data[0] == 'B' && raw_image_file_data[1] == 'M')
{
- error = "Can't allocate memory.";
+ image_type = IMAGE_TYPE_BMP;
+ }
+ else if (raw_image_file_data[1] == 'P' &&
+ raw_image_file_data[2] == 'N' &&
+ raw_image_file_data[3] == 'G')
+ {
+ image_type = IMAGE_TYPE_PNG;
+ }
+ else
+ {
+ RARCH_LOG("Invalid image type returned from server.\n");
goto finish;
}
- rpng_set_buf_ptr(rpng, raw_image_file_data, new_image_size);
- rpng_start(rpng);
- while (rpng_iterate_image(rpng));
-
- do
+
+ ai_res = menu_widgets_ai_service_overlay_load(
+ raw_image_file_data, (unsigned) new_image_size,
+ image_type);
+
+ if (!ai_res)
{
- retval = rpng_process_image(rpng, &raw_image_data_alpha, new_image_size, &image_width, &image_height);
+ RARCH_LOG("Video driver not supported for AI Service.");
+ runloop_msg_queue_push(
+ /* msg_hash_to_str(MSG_VIDEO_DRIVER_NOT_SUPPORTED), */
+ "Video driver not supported.",
+ 1, 180, true,
+ NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
}
- while(retval == IMAGE_PROCESS_NEXT);
-
- /* Returned output from the png processor is an upside down RGBA
- * image, so we have to change that to RGB first. This should
- * probably be replaced with a scaler call.*/
+ else if (menu_widgets_paused)
{
- int d,tw,th,tc;
- d=0;
+ /* In this case we have to unpause and then repause for a frame */
+ menu_widgets_ai_service_overlay_set_state(2);/* Unpausing state */
+ command_event(CMD_EVENT_UNPAUSE, NULL);
+ }
+ }
+ else
+#endif
+ /* Can't use menu widget overlays, so try writing to video buffer */
+ {
+ /* Write to video buffer directly (software cores only) */
+ if (raw_image_file_data[0] == 'B' && raw_image_file_data[1] == 'M')
+ {
+ /* This is a BMP file coming back. */
+ /* Get image data (24 bit), and convert to the emulated pixel format */
+ image_width =
+ ((uint32_t) ((uint8_t)raw_image_file_data[21]) << 24) +
+ ((uint32_t) ((uint8_t)raw_image_file_data[20]) << 16) +
+ ((uint32_t) ((uint8_t)raw_image_file_data[19]) << 8) +
+ ((uint32_t) ((uint8_t)raw_image_file_data[18]) << 0);
+
+ image_height =
+ ((uint32_t) ((uint8_t)raw_image_file_data[25]) << 24) +
+ ((uint32_t) ((uint8_t)raw_image_file_data[24]) << 16) +
+ ((uint32_t) ((uint8_t)raw_image_file_data[23]) << 8) +
+ ((uint32_t) ((uint8_t)raw_image_file_data[22]) << 0);
raw_image_data = malloc(image_width*image_height*3*sizeof(uint8_t));
- for (i=0;iout_fmt = SCALER_FMT_ARGB8888;
+ pitch = width * 4;
+ scaler->out_stride = width * 4;
+ }
+ else
+ {
+ raw_output_data = (uint8_t*)malloc(width * height * 2 * sizeof(uint8_t));
+ scaler->out_fmt = SCALER_FMT_RGB565;
+ pitch = width * 2;
+ scaler->out_stride = width * 1;
+ }
+
+ if (!raw_output_data)
+ goto finish;
+
+ scaler->in_fmt = SCALER_FMT_BGR24;
+ scaler->in_width = image_width;
+ scaler->in_height = image_height;
+ scaler->out_width = width;
+ scaler->out_height = height;
+ scaler->scaler_type = SCALER_TYPE_POINT;
+ scaler_ctx_gen_filter(scaler);
+ scaler->in_stride = -1 * width * 3;
+
+ scaler_ctx_scale_direct(scaler, raw_output_data,
+ (uint8_t*)raw_image_data + (image_height - 1) * width * 3);
+ video_driver_frame(raw_output_data, image_width, image_height, pitch);
}
-
- /* The assigned pitch may not be reliable. The width of
- the video frame can change during run-time, but the
- pitch may not, so we just assign it as the width
- times the byte depth.
- */
-
- if (video_driver_pix_fmt == RETRO_PIXEL_FORMAT_XRGB8888)
- {
- raw_output_data = (uint8_t*)malloc(width * height * 4 * sizeof(uint8_t));
- scaler->out_fmt = SCALER_FMT_ARGB8888;
- pitch = width * 4;
- scaler->out_stride = width * 4;
- }
- else
- {
- raw_output_data = (uint8_t*)malloc(width * height * 2 * sizeof(uint8_t));
- scaler->out_fmt = SCALER_FMT_RGB565;
- pitch = width * 2;
- scaler->out_stride = width * 1;
- }
-
- if (!raw_output_data)
- goto finish;
-
- scaler->in_fmt = SCALER_FMT_BGR24;
- scaler->in_width = image_width;
- scaler->in_height = image_height;
- scaler->out_width = width;
- scaler->out_height = height;
- scaler->scaler_type = SCALER_TYPE_POINT;
- scaler_ctx_gen_filter(scaler);
- scaler->in_stride = -1 * width * 3;
-
- scaler_ctx_scale_direct(scaler, raw_output_data,
- (uint8_t*)raw_image_data + (image_height - 1) * width * 3);
- video_driver_frame(raw_output_data, image_width, image_height, pitch);
}
-
+
#ifdef HAVE_AUDIOMIXER
if (raw_sound_data)
{
@@ -2998,7 +3075,8 @@ finish:
free(raw_image_data);
if (scaler)
free(scaler);
-
+ if (error_string)
+ free(error_string);
if (raw_output_data)
free(raw_output_data);
}
@@ -3163,10 +3241,10 @@ static const char *ai_service_get_str(enum translation_lang id)
To make your own server, it must listen for a POST request, which
will consist of a JSON body, with the "image" field as a base64
- encoded string of a 24bit-BMP that the will be translated. The server
- must output the translated image in the form of a JSON body, with
- the "image" field also as a base64 encoded 24bit-BMP, or
- as an alpha channel png.
+ encoded string of a 24bit-BMP/PNG that the will be translated.
+ The server must output the translated image in the form of a
+ JSON body, with the "image" field also as a base64 encoded
+ 24bit-BMP, or as an alpha channel png.
*/
static bool run_translation_service(void)
{
@@ -3194,11 +3272,37 @@ static bool run_translation_service(void)
const char *rf2 = "\"}\0";
char *rf3 = NULL;
bool TRANSLATE_USE_BMP = false;
+ bool use_overlay = true;
const char *label = NULL;
char* system_label = NULL;
core_info_t *core_info = NULL;
+#ifdef HAVE_MENU_WIDGETS
+ if (menu_widgets_ai_service_overlay_get_state() != 0)
+ {
+ /* For the case when ai service pause is disabled. */
+ menu_widgets_ai_service_overlay_unload();
+ goto finish;
+ }
+#else
+ if (!settings->bools.ai_service_pause)
+ {
+ RARCH_LOG("Pause toggle not supported without menu widgets.\n");
+ }
+#endif
+
+#ifdef HAVE_MENU_WIDGETS
+ if (video_driver_poke
+ && video_driver_poke->load_texture && video_driver_poke->unload_texture)
+ {
+ use_overlay = true;
+ }
+ else
+#endif
+ use_overlay = false;
+
+
/* get the core info here so we can pass long the game name */
core_info_get_current_core(&core_info);
@@ -3264,16 +3368,29 @@ static bool run_translation_service(void)
goto finish;
if (!video_driver_read_viewport(bit24_image_prev, false))
+ {
+ RARCH_LOG("Could not read viewport for translation service...\n");
goto finish;
+ }
/* TODO: Rescale down to regular resolution */
- width = vp.width;
- height = vp.height;
- bit24_image = bit24_image_prev;
- bit24_image_prev = NULL;
+ scaler->in_fmt = SCALER_FMT_BGR24;
+ scaler->out_fmt = SCALER_FMT_BGR24;
+ scaler->scaler_type = SCALER_TYPE_POINT;
+ scaler->in_width = vp.width;
+ scaler->in_height = vp.height;
+ scaler->out_width = width;
+ scaler->out_height = height;
+ scaler_ctx_gen_filter(scaler);
+
+ scaler->in_stride = vp.width*3;
+ scaler->out_stride = width*3;
+ scaler_ctx_scale_direct(scaler, bit24_image, bit24_image_prev);
+ scaler_ctx_gen_reset(scaler);
}
else
{
+ /* This is a software core, so just change the pixel format to 24-bit. */
bit24_image = (uint8_t*)malloc(width * height * 3);
if (!bit24_image)
goto finish;
@@ -3298,13 +3415,14 @@ static bool run_translation_service(void)
goto finish;
}
- /*
- At this point, we should have a screenshot in the buffer, so allocate
- an array to contain the BMP image along with the BMP header as bytes,
- and then covert that to a b64 encoded array for transport in JSON.
- */
if (TRANSLATE_USE_BMP)
{
+ /*
+ At this point, we should have a screenshot in the buffer, so allocate
+ an array to contain the BMP image along with the BMP header as bytes,
+ and then covert that to a b64 encoded array for transport in JSON.
+ */
+
form_bmp_header(header, width, height, false);
bmp_buffer = (uint8_t*)malloc(width * height * 3+54);
if (!bmp_buffer)
@@ -3355,7 +3473,7 @@ static bool run_translation_service(void)
memcpy(json_buffer+11+out_length, (const void*)rf3, (16+strlen(system_label))*sizeof(uint8_t));
else
memcpy(json_buffer+11+out_length, (const void*)rf2, 3*sizeof(uint8_t));
-
+ RARCH_LOG("Request size: %d\n", out_length);
{
char separator = '?';
char new_ai_service_url[PATH_MAX_LENGTH];
@@ -3409,9 +3527,23 @@ static bool run_translation_service(void)
/*"image" is included for backwards compatability with
* vgtranslate < 1.04 */
- char* mode_chr = "image,png";
- if (settings->uints.ai_service_mode == 1)
+ char* mode_chr;
+ if (settings->uints.ai_service_mode == 0)
+ {
+ if (use_overlay)
+ mode_chr = "image,png,png-a";
+ else
+ mode_chr = "image,png";
+ }
+ else if (settings->uints.ai_service_mode == 1)
mode_chr = "sound,wav";
+ else if (settings->uints.ai_service_mode == 2)
+ {
+ if (use_overlay)
+ mode_chr = "image,png,png-a,sound,wav";
+ else
+ mode_chr = "image,png,sound,wav";
+ }
snprintf(temp_string,
sizeof(temp_string),
@@ -3421,7 +3553,7 @@ static bool run_translation_service(void)
strlcat(new_ai_service_url, temp_string,
sizeof(new_ai_service_url));
}
-
+ RARCH_LOG("SENDING... %s\n", new_ai_service_url);
task_push_http_post_transfer(new_ai_service_url,
json_buffer, true, NULL, handle_translation_cb, NULL);
}
@@ -4625,7 +4757,6 @@ static void retroarch_pause_checks(void)
if (is_paused)
{
RARCH_LOG("%s\n", msg_hash_to_str(MSG_PAUSED));
- command_event(CMD_EVENT_AUDIO_STOP, NULL);
#if defined(HAVE_MENU) && defined(HAVE_MENU_WIDGETS)
if (menu_widgets_inited)
@@ -4652,8 +4783,13 @@ static void retroarch_pause_checks(void)
menu_widgets_paused = is_paused;
#endif
RARCH_LOG("%s\n", msg_hash_to_str(MSG_UNPAUSED));
- command_event(CMD_EVENT_AUDIO_START, NULL);
+
}
+
+#ifdef HAVE_MENU_WIDGETS
+ if (menu_widgets_ai_service_overlay_get_state() == 1)
+ menu_widgets_ai_service_overlay_unload();
+#endif
}
static void retroarch_frame_time_free(void)
@@ -4749,23 +4885,26 @@ bool command_event(enum event_command cmd, void *data)
{
#ifdef HAVE_TRANSLATE
settings_t *settings = configuration_settings;
- if (settings->uints.ai_service_mode == 0)
+ if (settings->bools.ai_service_pause)
{
- /* Default mode - pause on call, unpause on second press. */
+ /* pause on call, unpause on second press. */
if (!runloop_paused)
{
command_event(CMD_EVENT_PAUSE, NULL);
command_event(CMD_EVENT_AI_SERVICE_CALL, NULL);
}
else
+ {
command_event(CMD_EVENT_UNPAUSE, NULL);
- }
- /* Text-to-Speech mode - don't pause */
- else if (settings->uints.ai_service_mode == 1)
- command_event(CMD_EVENT_AI_SERVICE_CALL, NULL);
+ }
+ }
else
{
- RARCH_LOG("Invalid AI Service Mode.\n");
+ /* Don't pause - useful for Text-To-Speech since
+ * the audio can't currently play while paused.
+ * Also useful for cases when users don't want the
+ * core's sound to stop while translating. */
+ command_event(CMD_EVENT_AI_SERVICE_CALL, NULL);
}
#endif
break;
@@ -4965,7 +5104,7 @@ bool command_event(enum event_command cmd, void *data)
command_event_save_auto_state();
command_event_disable_overrides();
retroarch_unset_runtime_shader_preset();
-
+
if (cached_video_driver[0])
{
settings_t *settings = configuration_settings;
@@ -7284,6 +7423,43 @@ static bool dynamic_request_hw_context(enum retro_hw_context_type type,
return true;
}
+static bool dynamic_verify_hw_context(enum retro_hw_context_type type,
+ unsigned minor, unsigned major)
+{
+ settings_t *settings = configuration_settings;
+ const char *video_ident = settings->arrays.video_driver;
+
+ if (settings->bools.driver_switch_enable)
+ return true;
+
+ switch (type)
+ {
+ case RETRO_HW_CONTEXT_VULKAN:
+ if (!string_is_equal(video_ident, "vulkan"))
+ return false;
+ break;
+ case RETRO_HW_CONTEXT_OPENGLES2:
+ case RETRO_HW_CONTEXT_OPENGLES3:
+ case RETRO_HW_CONTEXT_OPENGLES_VERSION:
+ case RETRO_HW_CONTEXT_OPENGL:
+ case RETRO_HW_CONTEXT_OPENGL_CORE:
+ if (!string_is_equal(video_ident, "gl") &&
+ !string_is_equal(video_ident, "glcore"))
+ {
+ return false;
+ }
+ break;
+ case RETRO_HW_CONTEXT_DIRECT3D:
+ if (!(string_is_equal(video_ident, "d3d11") && major == 11))
+ return false;
+ break;
+ default:
+ break;
+ }
+
+ return true;
+}
+
static void rarch_log_libretro(enum retro_log_level level,
const char *fmt, ...)
{
@@ -7841,7 +8017,9 @@ static bool rarch_environment_cb(unsigned cmd, void *data)
unsigned *cb = (unsigned*)data;
settings_t *settings = configuration_settings;
RARCH_LOG("[Environ]: GET_PREFERRED_HW_RENDER.\n");
- if (!strcmp(settings->arrays.video_driver, "glcore"))
+ if (!settings->bools.driver_switch_enable)
+ return false;
+ else if (!strcmp(settings->arrays.video_driver, "glcore"))
*cb = RETRO_HW_CONTEXT_OPENGL_CORE;
else if (!strcmp(settings->arrays.video_driver, "gl"))
*cb = RETRO_HW_CONTEXT_OPENGL;
@@ -7863,11 +8041,15 @@ static bool rarch_environment_cb(unsigned cmd, void *data)
video_driver_get_hw_context_internal();
RARCH_LOG("[Environ]: SET_HW_RENDER.\n");
-
+
if (!dynamic_request_hw_context(
cb->context_type, cb->version_minor, cb->version_major))
return false;
+ if (!dynamic_verify_hw_context(
+ cb->context_type, cb->version_minor, cb->version_major))
+ return false;
+
#if defined(HAVE_OPENGL) || defined(HAVE_OPENGL_CORE)
if (!gl_set_core_context(cb->context_type)) { }
#endif
@@ -19594,8 +19776,14 @@ static void video_driver_frame(const void *data, unsigned width,
if (!video_driver_active)
return;
+ if (data)
+ frame_cache_data = data;
+ frame_cache_width = width;
+ frame_cache_height = height;
+ frame_cache_pitch = pitch;
+
if (
- video_driver_scaler_ptr
+ video_driver_scaler_ptr
&& data
&& (video_driver_pix_fmt == RETRO_PIXEL_FORMAT_0RGB1555)
&& (data != RETRO_HW_FRAME_BUFFER_VALID)
@@ -19609,12 +19797,6 @@ static void video_driver_frame(const void *data, unsigned width,
pitch = video_driver_scaler_ptr->scaler->out_stride;
}
- if (data)
- frame_cache_data = data;
- frame_cache_width = width;
- frame_cache_height = height;
- frame_cache_pitch = pitch;
-
video_driver_build_info(&video_info);
/* Get the amount of frames per seconds. */
@@ -21308,6 +21490,10 @@ static void drivers_init(int flags)
menu_widgets_context_reset(video_is_threaded,
video_driver_width, video_driver_height);
}
+ else
+ {
+ menu_display_init_first_driver(video_is_threaded);
+ }
#endif
if (flags & DRIVER_VIDEO_MASK)
@@ -24802,6 +24988,14 @@ static enum runloop_state runloop_check_state(void)
#endif
#endif
+#ifdef HAVE_MENU_WIDGETS
+ if (menu_widgets_ai_service_overlay_get_state() == 3)
+ {
+ command_event(CMD_EVENT_PAUSE, NULL);
+ menu_widgets_ai_service_overlay_set_state(1);
+ }
+#endif
+
#ifdef HAVE_LIBNX
/* Should be called once per frame */
if (!appletMainLoop())
diff --git a/version.all b/version.all
index 28cd03e37e..e0622cc9b5 100644
--- a/version.all
+++ b/version.all
@@ -6,8 +6,8 @@
# /* - pkg/snap/snapcraft.yaml (including the github url) */
#if 0
-RARCH_VERSION="1.7.9"
+RARCH_VERSION="1.8.0"
#endif
#ifndef PACKAGE_VERSION
-#define PACKAGE_VERSION "1.7.9"
+#define PACKAGE_VERSION "1.8.0"
#endif