diff --git a/Makefile.common b/Makefile.common index 84625f4268..5ea97d3e13 100644 --- a/Makefile.common +++ b/Makefile.common @@ -486,20 +486,8 @@ ifeq ($(HAVE_MENU_COMMON), 1) PSEUDO_NS := endif -ifeq ($(HAVE_LANGEXTRA), 1) -OBJ += menu/intl/menu_hash_de.o \ - menu/intl/menu_hash_es.o \ - menu/intl/menu_hash_eo.o \ - menu/intl/menu_hash_fr.o \ - menu/intl/menu_hash_it.o \ - menu/intl/menu_hash_nl.o \ - menu/intl/menu_hash_pl.o \ - menu/intl/menu_hash_pt.o -endif - OBJ += menu/menu_hash.o \ - menu/menu_driver.o \ + OBJ += menu/menu_driver.o \ menu/menu_content.o \ - menu/intl/menu_hash_us$(PSEUDO_NS).o \ menu/menu_input.o \ menu/menu_entry.o \ menu/menu_entries.o \ diff --git a/gfx/video_driver.c b/gfx/video_driver.c index 9882e8f876..50aaec98b3 100644 --- a/gfx/video_driver.c +++ b/gfx/video_driver.c @@ -42,7 +42,6 @@ #include "../msg_hash.h" #ifdef HAVE_MENU -#include "../menu/menu_hash.h" #include "../menu/menu_setting.h" #endif diff --git a/griffin/griffin.c b/griffin/griffin.c index f2bfd12eb5..afd3e57b80 100644 --- a/griffin/griffin.c +++ b/griffin/griffin.c @@ -846,7 +846,6 @@ MENU ============================================================ */ #ifdef HAVE_MENU #include "../menu/menu_driver.c" -#include "../menu/menu_hash.c" #include "../menu/menu_input.c" #include "../menu/menu_entry.c" #include "../menu/menu_entries.c" @@ -874,21 +873,6 @@ MENU #include "../menu/menu_displaylist.c" #include "../menu/menu_animation.c" -#ifdef HAVE_LANGEXTRA -#include "../menu/intl/menu_hash_de.c" -#include "../menu/intl/menu_hash_es.c" -#include "../menu/intl/menu_hash_eo.c" -#include "../menu/intl/menu_hash_fr.c" -#include "../menu/intl/menu_hash_it.c" -#include "../menu/intl/menu_hash_nl.c" -#include "../menu/intl/menu_hash_pl.c" -#include "../menu/intl/menu_hash_pt.c" -#ifdef HAVE_UTF8 -#include "../menu/intl/menu_hash_ru.c" -#endif -#endif -#include "../menu/intl/menu_hash_us.c" - #include "../menu/drivers/null.c" #include "../menu/drivers/menu_generic.c" diff --git a/intl/msg_hash_de.c b/intl/msg_hash_de.c index 862b9ddc0d..27d343225a 100644 --- a/intl/msg_hash_de.c +++ b/intl/msg_hash_de.c @@ -19,6 +19,418 @@ #include #include "../msg_hash.h" +#include "../configuration.h" + + /* IMPORTANT: + * For non-english characters to work without proper unicode support, + * we need this file to be encoded in ISO 8859-1 (Latin1), not UTF-8. + * If you save this file as UTF-8, you'll break non-english characters + * (e.g. German "Umlauts" and Portugese diacritics). + */ +/* DO NOT REMOVE THIS. If it causes build failure, it's because you saved the file as UTF-8. Read the above comment. */ +extern const char force_iso_8859_1[sizeof("äÄöÖßüÜ")==7+1 ? 1 : -1]; + +int menu_hash_get_help_de(uint32_t hash, char *s, size_t len) +{ + uint32_t driver_hash = 0; + settings_t *settings = config_get_ptr(); + + /* If this one throws errors, stop sledgehammering square pegs into round holes and */ + /* READ THE COMMENTS at the top of the file. */ (void)sizeof(force_iso_8859_1); + + switch (hash) + { + case MENU_LABEL_INPUT_DRIVER: + if (settings) + driver_hash = msg_hash_calculate(settings->input.driver); + + switch (driver_hash) + { + case MENU_LABEL_INPUT_DRIVER_UDEV: + { + /* Work around C89 limitations */ + char u[501]; + char t[501]; + + snprintf(t, sizeof(t), + "udev-Eingabetreiber. \n" + " \n" + "Dieser Treiber kann ohne X ausgeführt werden. \n" + " \n" + "Er verwende die neue evdev-Joypad-API \n" + "für die Joystick-Unterstützung und unterstützt \n" + "auch Hotplugging und Force-Feedback (wenn das \n" + "Gerät dies unterstützt). \n" + " \n" + ); + snprintf(u, sizeof(u), + "Der Treiber liest evdev-Ereigniss für Tastatur- \n" + "Unterstützung und kann auch mit Tastatur-Callbacks, \n" + "Mäusen und Touchpads umgehen. \n" + " \n" + "Standardmäßig sind die /dev/input-Dateien in den \n" + "meisten Linux-Distribution nur für den Root- \n" + "Benutzer lesbar (mode 600). Du kannst eine udev- \n" + "Regel erstellen, die auch den Zugriff für andere \n" + "Benutzer erlaubt."); + strlcat(s, t, len); + strlcat(s, u, len); + } + break; + case MENU_LABEL_INPUT_DRIVER_LINUXRAW: + snprintf(s, len, + "linuxraw-Eingabetreiber. \n" + " \n" + "Dieser Treiber erforder eine aktive TTY-Schnittstelle. \n" + "Tastatur-Ereignisse werden direkt von der TTY gelesen, \n" + "was es einfacher, aber weniger flexibel als udev macht. \n" + "Mäuse, etc, werden nicht unterstützt. \n" + " \n" + "Dieser Treiber verwendet die alte Joystick-API \n" + "(/dev/input/js*)."); + break; + default: + snprintf(s, len, + "Eingabetreiber.\n" + " \n" + "Abhängig vom Grafiktreiber kann ein anderer Eingabe- \n" + "treiber erzwungen werden."); + break; + } + break; + case MENU_LABEL_LOAD_CONTENT: + snprintf(s, len, + "Lade Content. \n" + "Suche nach Content. \n" + " \n" + "Um Content zu laden benötigst du den passenden \n" + "Libretro-Core und die Content-Datei. \n" + " \n" + "Um einzustellen, welcher Ordner standardmäßig \n" + "geöffnet wird, um nach Content zu suchen, solltest \n" + "du das Content-Verzeichnis setzen. Wenn es nicht \n" + "gesetzt ist, wird es im Root-Verzeichen starten. \n" + " \n" + "Der Browser wird nur Dateierweiterungen des \n" + "zuletzt geladenen Cores zeigen und diesen Core \n" + "nutzen, wenn Content geladen wird." + ); + break; + case MENU_LABEL_CORE_LIST: + snprintf(s, len, + "Lade Core. \n" + " \n" + "Suche nach einer Libretro-Core- \n" + "Implementierung. In welchem Verzeichnis der \n" + "Browser startet, hängt vom deinem Core-Verzeichnis \n" + "ab. Falls du es nicht eingestellt hast, wird er \n" + "im Root-Verzeichnis starten. \n" + " \n" + "Ist das Core-Verzeichnis ein Ordner, wird das \n" + "Menü diesen als Startverzeichnis nutzen. Ist \n" + "das Core-Verzeichnis ein Pfad zu einer Datei, \n" + "wird es in dem Verzeichnis starten, in dem \n" + "sich die Datei befindet."); + break; + case MENU_LABEL_LOAD_CONTENT_HISTORY: + snprintf(s, len, + "Lade Content aus dem Verlauf. \n" + " \n" + "Wenn Content geladen wird, wird der Content \n" + "sowie der dazugehörige Core im Verlauf gespeichert. \n" + " \n" + "Der Verlauf wird im selben Verzeichnis wie die \n" + "RetroArch-Konfigurationsdatei gespeicher. Wenn \n" + "beim Start keine Konfigurationsdatei geladen wurde, \n" + "wird keine Verlauf geladen oder gespeichert und nicht \n" + "im Hauptmenü angezeigt." + ); + break; + case MENU_LABEL_VIDEO_DRIVER: + if (settings) + driver_hash = msg_hash_calculate(settings->video.driver); + + switch (driver_hash) + { + case MENU_LABEL_VIDEO_DRIVER_GL: + snprintf(s, len, + "OpenGL-Grafiktreiber. \n" + " \n" + "Dieser Treiber erlaubt es, neben software- \n" + "gerenderten Cores aus Libretro-GL-Cores zu \n" + "verwenden. \n" + " \n" + "Die Leistung, sowohl bei software-gerenderten, \n" + "als auch bei Libretro-GL-Cores, hängt von dem \n" + "GL-Treiber deiner Grafikkarte ab."); + break; + case MENU_LABEL_VIDEO_DRIVER_SDL2: + snprintf(s, len, + "SDL2-Grafiktreiber.\n" + " \n" + "Dies ist ein SDL2-Grafiktreiber \n" + "mit Software-Rendering." + " \n" + "Die Leistung hängt von der SDL- \n" + "Implementierung deiner Plattform ab."); + break; + case MENU_LABEL_VIDEO_DRIVER_SDL1: + snprintf(s, len, + "SDL-Grafiktreiber.\n" + " \n" + "Dies ist ein SDL1.2-Grafiktreiber \n" + "mit Software-Rendering." + " \n" + "Die Leistung ist suboptimal und du \n" + "solltest ihn nur als letzte \n" + "Möglichkeit verwenden."); + break; + case MENU_LABEL_VIDEO_DRIVER_D3D: + snprintf(s, len, + "Direct3D-Grafiktreiber. \n" + " \n" + "Die Leistung bei software-gerenderten \n" + "Cores hängt von dem D3D-Treiber deiner \n" + "Grafikkarte ab."); + break; + case MENU_LABEL_VIDEO_DRIVER_EXYNOS: + snprintf(s, len, + "Exynos-G2D-Grafiktreiber. \n" + " \n" + "Dies ist ein Low-Level-Exynos-Grafiktreiber. \n" + "Er verwendet den G2D-Block in Samsung-Exynos-SoCs. \n" + "für Blitting-Operationen. \n" + " \n" + "Die Leistung bei software-gerendeten Cores sollte \n" + "optimal sein."); + break; + case MENU_LABEL_VIDEO_DRIVER_SUNXI: + snprintf(s, len, + "Sunxi-G2D-Grafiktreiber\n" + " \n" + "Dies ist ein Low-Level-Sunxi-Grafiktreiber. \n" + "Er verwendet den G2D-Block in Allwinnder-SoCs."); + break; + default: + snprintf(s, len, + "Momentaner Grafiktreiber."); + break; + } + break; + case MENU_LABEL_AUDIO_DSP_PLUGIN: + snprintf(s, len, + "Audio-DSP-Plugin.\n" + " Verarbeitet Audiodaten, bevor \n" + "sie zum Treiber gesendet werden." + ); + break; + case MENU_LABEL_AUDIO_RESAMPLER_DRIVER: + if (settings) + driver_hash = msg_hash_calculate(settings->audio.resampler); + + switch (driver_hash) + { + case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_SINC: + snprintf(s, len, + "Windowed-SINC-Implementierung."); + break; + case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_CC: + snprintf(s, len, + "Convoluted-Kosinus-Implementierung."); + break; + } + break; + case MENU_LABEL_VIDEO_SHADER_PRESET: + snprintf(s, len, + "Lade Shader-Voreinstellung. \n" + " \n" + " Lade eine " +#ifdef HAVE_CG + "Cg" +#endif +#ifdef HAVE_GLSL +#ifdef HAVE_CG + "/" +#endif + "GLSL" +#endif +#ifdef HAVE_HLSL +#if defined(HAVE_CG) || defined(HAVE_HLSL) + "/" +#endif + "HLSL" +#endif + "-Voreinstellung. \n" + "Das Menüshader-Menü wird entsprechend \n" + "aktualisiert." + " \n" + "Wenn der CGP komplexe Methoden verwendet, \n" + "(also andere als Quellskalierung mit dem \n" + "selben Faktor für X/Y) kann der im Menü \n" + "angezeigte Skalierungsfaktor inkorrekt sein." + ); + break; + case MENU_LABEL_VIDEO_SHADER_SCALE_PASS: + snprintf(s, len, + "Für diesen Durchgang skalieren. \n" + " \n" + "Der Skalierungsfaktor wird multipliziert, \n" + "d.h. 2x im ersten Durchgang und 2x im \n" + "zweiten Durchgang bedeute eine 4x Gesamt- \n" + "Skalierung." + " \n" + "Wenn es im letzten Durchgang einen \n" + "Skalierungsfaktor gibt, wird das Ergebnis \n" + "mit dem als 'Standardfilter' eingestellten \n" + "Filter auf die Bildschirmgröße gestreckt. \n" + " \n" + "Wenn 'Mir egal' eingestellt ist, wird \n" + "entweder einfache Skalierung or Vollbild- \n" + "Streckung verwendet - abhängig davon, ob \n" + "es der letzte Durchgang ist oder nicht." + ); + break; + case MENU_LABEL_VIDEO_SHADER_NUM_PASSES: + snprintf(s, len, + "Shader-Durchgänge. \n" + " \n" + "RetroArch erlaubt es dir, verschiedene Shader \n" + "in verschiedenen Durchgängen miteinander zu \n" + "kombinieren. \n" + " \n" + "Diese Option legt die Anzahl der Shader- \n" + "Durchgänge fest. Wenn du die Anzahl auf 0 setzt, \n" + "verwendest du einen 'leeren' Shader." + " \n" + "Die 'Standardfilter'-Option beeinflusst den \n" + "Streckungsfilter"); + break; + case MENU_LABEL_VIDEO_SHADER_PARAMETERS: + snprintf(s, len, + "Shader-Parameter. \n" + " \n" + "Verändert den momentanen Shader. Wird nicht in \n" + "der CGP/GLSLP-Voreinstellungs-Datei gespeichert."); + break; + case MENU_LABEL_VIDEO_SHADER_PRESET_PARAMETERS: + snprintf(s, len, + "Shader-Voreinstellung-Parameter. \n" + " \n" + "Verändert die Shader-Voreinstellung, die aktuell \n" + "im Menü aktiv ist." + ); + break; + /* + * FIXME: Some stuff still missing here. + */ + case MENU_LABEL_OSK_ENABLE: + snprintf(s, len, + "(De-)Aktiviere die Bildschirmtastatur."); + break; + case MENU_LABEL_AUDIO_MUTE: + snprintf(s, len, + "Audio stummschalten."); + break; + case MENU_LABEL_REWIND: + snprintf(s, len, + "Halte die Taste zum Zurückspulen gedrückt.\n" + " \n" + "Die Zurückspulfunktion muss eingeschaltet \n" + "sein."); + break; + case MENU_LABEL_EXIT_EMULATOR: + snprintf(s, len, + "Taste zum Beenden von RetroArch." +#if !defined(RARCH_MOBILE) && !defined(RARCH_CONSOLE) + "\nWenn du es stattdessen mittels SIGKILL \n" + "beendest, wird RetroArch nicht den RAM \n" + "sichern. Bei unixoiden Betriebssystemen \n" + "erlaubt SIGINT/SIGTERM ein sauberes \n" + "Beenden." +#endif + ); + break; + case MENU_LABEL_LOAD_STATE: + snprintf(s, len, + "Lädt einen Savestate."); + break; + case MENU_LABEL_SAVE_STATE: + snprintf(s, len, + "Speichert einen Savestate."); + break; + case MENU_LABEL_NETPLAY_FLIP_PLAYERS: + snprintf(s, len, + "Netplay-Spieler tauschen."); + break; + case MENU_LABEL_CHEAT_INDEX_PLUS: + snprintf(s, len, + "Erhöht den Cheat-Index.\n"); + break; + case MENU_LABEL_CHEAT_INDEX_MINUS: + snprintf(s, len, + "Verringert den Cheat-Index.\n"); + break; + case MENU_LABEL_SHADER_PREV: + snprintf(s, len, + "Wendet vorherigen Shader im Verzeichnis an."); + break; + case MENU_LABEL_SHADER_NEXT: + snprintf(s, len, + "Wendet nächsten Shader im Verzeichnis an."); + break; + case MENU_LABEL_RESET: + snprintf(s, len, + "Setzt den Content zurück.\n"); + break; + case MENU_LABEL_PAUSE_TOGGLE: + snprintf(s, len, + "Pausiert den Content und setzt ihn wieder fort."); + break; + case MENU_LABEL_CHEAT_TOGGLE: + snprintf(s, len, + "Schaltet den Cheat-Index ein und aus.\n"); + break; + case MENU_LABEL_HOLD_FAST_FORWARD: + snprintf(s, len, + "Halte den Knopf gedrückt, um vorzuspulen. Beim Loslassen \n" + "wird das Vorspulen beendet."); + break; + case MENU_LABEL_SLOWMOTION: + snprintf(s, len, + "Halte den Knopf gedrückt, um die Zeitlupe einzuschalten."); + break; + case MENU_LABEL_FRAME_ADVANCE: + snprintf(s, len, + "Frame-Advance, wenn der Content pausiert ist."); + break; + case MENU_LABEL_MOVIE_RECORD_TOGGLE: + snprintf(s, len, + "Aufnahme ein- und ausschalten."); + break; + case MENU_LABEL_L_X_PLUS: + case MENU_LABEL_L_X_MINUS: + case MENU_LABEL_L_Y_PLUS: + case MENU_LABEL_L_Y_MINUS: + case MENU_LABEL_R_X_PLUS: + case MENU_LABEL_R_X_MINUS: + case MENU_LABEL_R_Y_PLUS: + case MENU_LABEL_R_Y_MINUS: + snprintf(s, len, + "Achse für Analog-Stick (DualShock-artig).\n" + " \n" + "Zugewiesen wie gewöhnlich, wenn jedoch eine echte \n" + "Analogachse zugewiesen wird, kann sie auch wirklich \n" + "analog gelesen werden.\n" + " \n" + "Positive X-Achse ist rechts. \n" + "Positive Y-Achse ist unten."); + break; + default: + return -1; + } + + return 0; +} const char *msg_hash_to_str_de(enum msg_hash_enums msg) { diff --git a/intl/msg_hash_eo.c b/intl/msg_hash_eo.c index f31cba720a..bf668effb2 100644 --- a/intl/msg_hash_eo.c +++ b/intl/msg_hash_eo.c @@ -13,8 +13,26 @@ * If not, see . */ +#include +#include + #include "../msg_hash.h" +int menu_hash_get_help_eo(uint32_t hash, char *s, size_t len) +{ + int ret = 0; + + switch (hash) + { + case 0: + default: + ret = -1; + break; + } + + return ret; +} + const char *msg_hash_to_str_eo(enum msg_hash_enums msg) { switch (msg) diff --git a/intl/msg_hash_es.c b/intl/msg_hash_es.c index 9c949701f8..d1a639fb01 100644 --- a/intl/msg_hash_es.c +++ b/intl/msg_hash_es.c @@ -19,6 +19,7 @@ #include #include "../msg_hash.h" +#include "../configuration.h" #ifdef __clang__ #pragma clang diagnostic ignored "-Winvalid-source-encoding" @@ -33,6 +34,1208 @@ /* DO NOT REMOVE THIS. If it causes build failure, it's because you saved the file as UTF-8. Read the above comment. */ extern const char force_iso_8859_1[sizeof("äÄöÖßüÜ")==7+1 ? 1 : -1]; +int menu_hash_get_help_es(uint32_t hash, char *s, size_t len) +{ + uint32_t driver_hash = 0; + settings_t *settings = config_get_ptr(); + + /* If this one throws errors, stop sledgehammering square pegs into round holes and */ + /* READ THE COMMENTS at the top of the file. */ + (void)sizeof(force_iso_8859_1); + + switch (hash) + { + case MENU_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC: + { + /* Work around C89 limitations */ + char u[501]; + char t[501]; + + strlcpy(t, + "RetroArch utiliza un formato único para \n" + "sincronizar vídeo y sonido que necesita \n" + "calibrarse con la frecuencia de \n" + "actualización de tu monitor para obtener \n" + "el mejor rendimiento. \n" + " \n" + "Si notas cortes de sonido o en la imagen,\n" + "lo normal es que necesites calibrar estos\n" + "ajustes. Aquí van algunas opciones:\n" + " \n", sizeof(t)); + snprintf(u, sizeof(u), + "a) Ve a '%s' -> '%s' y activa\n" + "'Vídeo por hilos'. En este modo la tasa\n" + "de refresco es irrelevante, habrá más fps,\n" + "'Vídeo multinúcleo'. En este modo la \n" + "frecuencia es irrelevante, habrá más fps,\n" + "pero la imagen podría ser menos fluida.\n" + "b) Ve a '%s' -> '%s' y busca\n" + "'%s'. Deja que se ejecute durante\n" + "2048 fotogramas y selecciona Aceptar.", + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_REFRESH_RATE_AUTO) + ); + strlcat(s, t, len); + strlcat(s, u, len); + } + break; + case MENU_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC: + snprintf(s, len, + "Para escanear contenidos ve a '%s' \n" + "y selecciona '%s' o \n" + "'%s'.\n" + " \n" + "Esto comparará los archivos con las entradas en \n" + "la base de datos. Si hay una coincidencia, \n" + "añadirá una entrada en una colección.\n" + " \n" + "Entonces podrás acceder fácilmente al contenido\n" + "si vas a '%s' ->\n" + "'%s'\n" + "en vez de tener que pasar por el navegador \n" + "de archivos constantemente.\n" + " \n" + "NOTA: El contenido de algunos núcleos podría\n" + "no ser localizable. Entre los ejemplos están\n" + "PlayStation, MAME, FBA, y puede que otros." + , + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ADD_CONTENT_LIST), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_DIRECTORY), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_FILE), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CONTENT_COLLECTION_LIST) + ); + break; + case MENU_LABEL_VALUE_MENU_CONTROLS_PROLOG: + snprintf(s, len, + "Puedes usar estos controles en tu mando\n" + "o teclado para controlar el menú: \n" + " \n" + ); + break; + case MENU_LABEL_VALUE_EXTRACTING_PLEASE_WAIT: + strlcpy(s, "Extrayendo, espera, por favor...\n", len); + break; + case MENU_LABEL_WELCOME_TO_RETROARCH: + snprintf(s, len, + "Bienvenido a RetroArch\n" + "\n" + "Para más información ve al menú \n" + "de Ayuda.\n" + ); + break; + case MENU_LABEL_INPUT_DRIVER: + if (settings) + driver_hash = msg_hash_calculate(settings->input.driver); + + switch (driver_hash) + { + case MENU_LABEL_INPUT_DRIVER_UDEV: + { + /* Work around C89 limitations */ + char u[501]; + char t[501]; + + strlcpy(t, + "Controlador de entrada udev. \n" + " \n" + "Este controlador puede funcionar sin X. \n" + " \n" + "Utiliza la API más reciente para joypads \n" + "evdec para dar compatibilidad con joysticks. \n" + "Permite conexión en caliente y force \n" + "feedback (si lo admite el dispositivo). \n", + sizeof(t)); + strlcpy(u, + " \n" + "El controlador lee los eventos evdev para \n" + "dar compatibilidad con teclados. También \n" + "es compatible con retrollamadas de teclado, \n" + "ratones y pantallas táctiles. \n" + " \n" + "La mayoría de las distros tienen los nodos \n" + "/dev/input en modo root-only (modo 600). \n" + "Puedes configurar una regla udev que los haga \n" + "accesibles fuera de la raíz.", sizeof(u) + ); + + strlcat(s, t, len); + strlcat(s, u, len); + } + break; + case MENU_LABEL_INPUT_DRIVER_LINUXRAW: + snprintf(s, len, + "Controlador de entrada linuxraw. \n" + " \n" + "Este controlador necesita de un TTY activo. \n" + "Los eventos de teclado se leen directamente \n" + "desde el TTY, lo que es más simple pero no tan \n" + "flexible como udev. \n" + "No es compatible con ratones, etc. \n" + " \n" + "Este controlador utiliza la antigua API de \n" + "joysticks (/dev/input/js*)."); + break; + default: + snprintf(s, len, + "Controlador de entrada.\n" + " \n" + "El controlador de vídeo podría forzar \n" + "el uso de un controlador de entrada \n" + "distinto."); + break; + } + break; + case MENU_LABEL_LOAD_CONTENT: + snprintf(s, len, + "Cargar contenido. \n" + "Buscar contenido. \n" + " \n" + "Para cargar contenidos necesitas \n" + "un 'núcleo' y un archivo de contenido.\n" + " \n" + "Para controlar el lugar donde el menú \n" + "empieza a buscar contenidos, cambia \n" + "la opción 'Carpeta del navegador de \n" + "archivos'. En caso de que no esté \n" + "configurada, empezará desde la raíz.\n" + " \n" + "El navegador filtrará las extensiones \n" + "del último núcleo seleccionado en \n" + "'Cargar núcleo' y lo utilizará al \n" + "cargar un contenido." + ); + break; + case MENU_LABEL_CORE_LIST: + snprintf(s, len, + "Cargar núcleo. \n" + " \n" + "Busca una implementación de núcleo \n" + "para libretro. El navegador empezará \n" + "desde la ruta de tu carpeta de núcleos.\n" + "Si está en blanco, empezará desde \n" + "la raíz.\n" + " \n" + "Si la carpeta de núcleos es una carpeta,\n" + "el menú la utilizará como carpeta \n" + "base. Si la carpeta de núcleos es una \n" + "ruta completa, empezará en la carpeta \n" + "donde se encuentre el archivo."); + break; + case MENU_LABEL_LOAD_CONTENT_HISTORY: + snprintf(s, len, + "Cargar contenido del historial. \n" + " \n" + "Cuando se cargan contenidos, estos y \n" + "las combinaciones de núcleos de libretro \n" + "se guardan en el historial. \n" + " \n" + "El historial se guarda en un archivo en la \n" + "misma carpeta que el archivo de configura- \n" + "ción de RetroArch. Si no se ha cargado un \n" + "archivo de configuración al iniciar, no se \n" + "guardará ni cargará el historial, y la \n" + "opción no existirá en el menú principal." + ); + break; + case MENU_LABEL_VIDEO_DRIVER: + if (settings) + driver_hash = msg_hash_calculate(settings->video.driver); + + switch (driver_hash) + { + case MENU_LABEL_VIDEO_DRIVER_GL: + snprintf(s, len, + "Controlador de vídeo OpenGL. \n" + " \n" + "Este controlador permite que los núcleos \n" + "libretro GL se utilicen, además de las \n" + "implementaciones renderizadas por\n" + "software del núcleo.\n" + " \n" + "El rendimiento de las implementaciones \n" + "por software y libretro GL dependen \n" + "del controlador GL que tenga tu \n" + "tarjeta gráfica."); + break; + case MENU_LABEL_VIDEO_DRIVER_SDL2: + snprintf(s, len, + "Controlador de vídeo SDL 2.\n" + " \n" + "Este es un controlador de vídeo por \n" + "software SDL 2.\n" + " \n" + "El rendimiento para las implementaciones \n" + "libretro por software depende de la \n" + "implementación SDL de tu plataforma."); + break; + case MENU_LABEL_VIDEO_DRIVER_SDL1: + snprintf(s, len, + "Controlador de vídeo SDL.\n" + " \n" + "Este es un controlador de vídeo por \n" + "software SDL 1.2.\n" + " \n" + "Su rendimiento es considerado inferior \n" + "a lo óptimo. Utilízalo únicamente como \n" + "último recurso."); + break; + case MENU_LABEL_VIDEO_DRIVER_D3D: + snprintf(s, len, + "Controlador de vídeo Direct3D. \n" + " \n" + "El rendimiento de los núcleos que \n" + "rendericen por software dependerá \n" + "del controlador D3D de tu tarjeta \n" + "gráfica."); + break; + case MENU_LABEL_VIDEO_DRIVER_EXYNOS: + snprintf(s, len, + "Controlador de vídeo Exynos-G2D. \n" + " \n" + "Este es un controlador de vídeo Exynos \n" + "de bajo nivel. Utiliza el bloque G2D \n" + "del SoC Exynos de Samsung para las \n" + "operaciones de blit. \n" + " \n" + "El rendimiento de los núcleos \n" + "renderizados por software debería \n" + "ser óptimo."); + break; + case MENU_LABEL_VIDEO_DRIVER_SUNXI: + snprintf(s, len, + "Controlador de vídeo Sunxi-G2D. \n" + " \n" + "Este es un controlador de vídeo Sunxi \n" + "de bajo nivel. Utiliza el bloque G2D \n" + "de todos los SoC Allwinner."); + break; + default: + snprintf(s, len, + "Controlador de vídeo actual."); + break; + } + break; + case MENU_LABEL_AUDIO_DSP_PLUGIN: + snprintf(s, len, + "Plugin de sonido DSP.\n" + "Procesa el sonido antes de enviarlo \n" + "al controlador." + ); + break; + case MENU_LABEL_AUDIO_RESAMPLER_DRIVER: + if (settings) + driver_hash = msg_hash_calculate(settings->audio.resampler); + + switch (driver_hash) + { + case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_SINC: + snprintf(s, len, + "Implementación SINC en ventana."); + break; + case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_CC: + snprintf(s, len, + "Implementación de cosenos complejos."); + break; + } + break; + case MENU_LABEL_VIDEO_SHADER_PRESET: + snprintf(s, len, + "Cargar preajustes de shaders. \n" + " \n" + " Carga directamente un preajuste " +#ifdef HAVE_CG + "Cg" +#endif +#ifdef HAVE_GLSL +#ifdef HAVE_CG + "/" +#endif + "GLSL" +#endif +#ifdef HAVE_HLSL +#if defined(HAVE_CG) || defined(HAVE_HLSL) + "/" +#endif + "HLSL" +#endif + ". \n" + "El menú de shaders se actualizará. \n" + " \n" + "Si el CGP utiliza métodos de escalado \n" + "complejos (por ejemplo, escalado de \n" + "origen, el mismo factor para X/Y), podría \n" + "no mostrar un factor de escalado correcto \n" + "en el menú." + ); + break; + case MENU_LABEL_VIDEO_SHADER_SCALE_PASS: + snprintf(s, len, + "La escala de esta pasada. \n" + " \n" + "El factor de escala es acumulativo, \n" + "por ejemplo: 2x para el primer pase y \n" + "2x para el segundo dará una escala \n" + "total de 4x. \n" + " \n" + "Si el último pase tiene un factor de \n" + "escala, el resultado se estirará por \n" + "toda la pantalla con el filtro espe- \n" + "cificado en 'Filtro predeterminado'. \n" + " \n" + "Si has seleccionado 'No importa', se \n" + "utilizará o bien la escala 1x o se \n" + "estirará a pantalla completa en función \n" + "de si es el último pase o no." + ); + break; + case MENU_LABEL_VIDEO_SHADER_NUM_PASSES: + snprintf(s, len, + "Pases de shaders. \n" + " \n" + "RetroArch permite mezclar diversos shaders \n" + "con pasadas arbitrarias, filtros persona- \n" + "lizados de hardware y factores de escala. \n" + " \n" + "Esta opción especifica la cantidad de pasadas \n" + "de shaders a utilizar. Si seleccionas 0 y \n" + "luego 'Aplicar cambios en shaders', \n" + "utilizarás un shader 'en blanco'. \n" + " \n" + "La opción filtro predeterminado afectará \n" + "al filtro de estiramiento."); + break; + case MENU_LABEL_VIDEO_SHADER_PARAMETERS: + snprintf(s, len, + "Parámetros de shaders. \n" + " \n" + "Modifica directamente el shader actual. \n" + "No se guardará en el preajuste CGP/GLSLP."); + break; + case MENU_LABEL_VIDEO_SHADER_PRESET_PARAMETERS: + snprintf(s, len, + "Parámetros del preajuste de shaders. \n" + " \n" + "Modifica el preajuste de shaders que \n" + "se encuentra actualmente en el menú." + ); + break; + case MENU_LABEL_VIDEO_SHADER_PASS: + snprintf(s, len, + "Ruta al shader. \n" + " \n" + "Todos los shaders deben ser del \n" + "mismo tipo (por ejemplo: CG, GLSL \n" + "o HLSL). \n" + " \n" + "Modifica la carpeta de shaders para \n" + "indicar la ruta en la que el navegador \n" + "comenzará a buscar shaders." + ); + break; + case MENU_LABEL_CONFIG_SAVE_ON_EXIT: + snprintf(s, len, + "Guarda la configuración al salir.\n" + "Es útil para el menú, ya que los \n" + "ajustes pueden ser modificados. \n" + "Sobrescribirá la configuración. \n" + " \n" + "No se preservarán los #include \n" + "y los comentarios. \n" + " \n" + "El archivo de configuración se \n" + "considera inmutable por diseño \n" + "ya que es probable que el usuario \n" + "lo controle, y no debería ser \n" + "sobrescrito sin que el usuario \n" + "no se entere." +#if defined(RARCH_CONSOLE) || defined(RARCH_MOBILE) + "\nSin embargo, no suele ser el caso \n" + "en consolas, donde no es posible \n" + "examinar el archivo de configuración \n" + "de forma manual." +#endif + ); + break; + case MENU_LABEL_VIDEO_SHADER_FILTER_PASS: + snprintf(s, len, + "Filtro de hardware para esta pasada. \n" + " \n" + "Si se ha seleccionado 'No importa', \n" + "se utilizará el filtro predeterminado." + ); + break; + case MENU_LABEL_AUTOSAVE_INTERVAL: + snprintf(s, len, + "Guarda automáticamente la SRAM \n" + "no volátil en intervalos regulares.\n" + " \n" + "Esta opción está desactivada por \n" + "defecto a menos que se haya configurado \n" + "lo contrario. El intervalo se mide \n" + "en segundos. \n" + " \n" + "Si utlizas 0, desactivarás el \n" + "guardado automático."); + break; + case MENU_LABEL_INPUT_BIND_DEVICE_TYPE: + snprintf(s, len, + "Tipo de dispositivo de entrada. \n" + " \n" + "Selecciona el tipo de dispositivo a \n" + "utilizar. Es relevante para el núcleo \n" + "de libretro." + ); + break; + case MENU_LABEL_LIBRETRO_LOG_LEVEL: + snprintf(s, len, + "Ajusta el nivel de registro de los \n" + "núcleos de libretro (GET_LOG_INTERFACE). \n" + " \n" + " Si un nivel de registro indicado por \n" + " un núcleo de libretro está por debajo \n" + " del nivel indicado en libretro_log, \n" + " será ignorado.\n" + " \n" + " Los registros DEBUG siempre son ignorados \n" + " a menos que esté activado el modo \n" + " de verbosidad (--verbose).\n" + " \n" + " DEBUG = 0\n" + " INFO = 1\n" + " WARN = 2\n" + " ERROR = 3" + ); + break; + case MENU_LABEL_STATE_SLOT_INCREASE: + case MENU_LABEL_STATE_SLOT_DECREASE: + snprintf(s, len, + "Ranuras de guardados rápidos.\n" + " \n" + " Si se selecciona la ranura 0, el nombre \n" + " del guardado rápido es *.state \n" + " (o lo que esté definido en la línea \n" + "de comandos).\n" + "Si la ranura es != 0, la ruta será (path)(d), \n" + "siendo (d) el número de ranura."); + break; + case MENU_LABEL_SHADER_APPLY_CHANGES: + snprintf(s, len, + "Aplicar cambios en shaders. \n" + " \n" + "Después de cambiar los ajustes de shaders, \n" + "utiliza esta opción para aplicar los \n" + "cambios. \n" + " \n" + "Los cambios en los shaders es una \n" + "operación que ocupa bastante memoria, \n" + "así que han de hacerse de forma \n" + "explícita. \n" + " \n" + "Al aplicar shaders, se guarda su configuración \n" + "a un archivo temporal (menu.cgp ormenu.glslp) \n" + "y se cargan. El archivo persistirá al \n" + "abandonar RetroArch. El archivo se guarda en \n" + "la carpeta Shader." + ); + break; + case MENU_LABEL_INPUT_BIND_DEVICE_ID: + snprintf(s, len, + "Dispositivo de entrada. \n" + " \n" + "Selecciona el mando a utilizar por \n" + "el usuario N. \n" + "El nombre del mando está disponible." + ); + break; + case MENU_LABEL_MENU_TOGGLE: + snprintf(s, len, + "Muestra u oculta el menú."); + break; + case MENU_LABEL_GRAB_MOUSE_TOGGLE: + snprintf(s, len, + "Permite o no capturar el ratón.\n" + " \n" + "Al capturar el ratón, RetroArch lo oculta \n" + "y mantiene el puntero del ratón dentro de \n" + "la ventana para que la entrada relativa \n" + "del ratón funcione mejor."); + break; + case MENU_LABEL_DISK_NEXT: + snprintf(s, len, + "Rota entre las imágenes de disco. \n" + "Utiliza esta opción después de \n" + "expulsar un disco. \n" + " \n" + " Termina la operación volviendo \n" + " a conmutar el botón de expulsión."); + break; + case MENU_LABEL_VIDEO_FILTER: +#ifdef HAVE_FILTERS_BUILTIN + snprintf(s, len, + "Filtro de vídeo basado en la CPU."); +#else + snprintf(s, len, + "Filtro de vídeo basado en la CPU.\n" + " \n" + "Ruta a una librería dinámica."); +#endif + break; + case MENU_LABEL_AUDIO_DEVICE: + snprintf(s, len, + "Anula el dispositivo de sonido \n" + "predeterminado que utiliza el \n" + "controlador de sonido.\n" + "Esta opción depende del contro- \n" + "lador. Por ejemplo:\n" +#ifdef HAVE_ALSA + " \n" + "ALSA necesita un dispositivo PCM." +#endif +#ifdef HAVE_OSS + " \n" + "OSS necesita una ruta (por ejemplo: \n" + "/dev/dsp)." +#endif +#ifdef HAVE_JACK + " \n" + "JACK necesita nombres de puertos \n" + "(por ejemplo: system:playback1\n" + ",system:playback_2)." +#endif +#ifdef HAVE_RSOUND + " \n" + "RSound necesita una dirección IP \n" + "de un servidor RSound." +#endif + ); + break; + case MENU_LABEL_DISK_EJECT_TOGGLE: + snprintf(s, len, + "Alterna el botón de expulsión \n" + "de discos.\n" + " \n" + "Se utiliza para contenidos \n" + "que utilicen varios discos."); + break; + case MENU_LABEL_ENABLE_HOTKEY: + snprintf(s, len, + "Activa otras teclas rápidas.\n" + " \n" + "Si esta tecla rápida está asignada a un \n" + "teclado, un botón o un eje de un joystick, \n" + "el resto de teclas rápidas se desactivarán \n" + "a menos que esta tecla se mantenga pulsada \n" + "al mismo tiempo. \n" + " \n" + "Esto sirve para implementaciones centradas \n" + "en RETRO_KEYBOARD, que ocupan una gran \n" + "porción del teclado y no es una buena idea \n" + "que las teclas rápidas interfieran con \n" + "el funcionamiento normal."); + break; + case MENU_LABEL_REWIND_ENABLE: + snprintf(s, len, + "Activa el rebobinado.\n" + " \n" + "Esto consume rendimiento, así que \n" + "está desactivado por defecto."); + break; + case MENU_LABEL_LIBRETRO_DIR_PATH: + snprintf(s, len, + "Carpeta de núcleos. \n" + " \n" + "Una carpeta donde se buscarán las \n" + "implementaciones de núcleos libretro."); + break; + case MENU_LABEL_VIDEO_REFRESH_RATE_AUTO: + { + /* Work around C89 limitations */ + char u[501]; + char t[501]; + + strlcpy(t, + "Frecuencia de actualización automática.\n" + " \n" + "La frecuencia de actualización precisa del \n" + "monitor (en Hz). Se utiliza para calcular \n" + "la frecuencia de entrada de sonido con esta \n" + "fórmula: \n" + " \n" + "audio_input_rate = veloc. de entrada de juego \n" + "* frecuencia de actualización de pantalla / \n" + "frecuencia de actualización de juego \n" + " \n", sizeof(t)); + strlcpy(u, + "Si la implementación no indica un valor, se \n" + "asumirá de forma predeterminada el sistema \n" + "NTSC por compatibilidad.\n" + " \n" + "Este valor debería ser lo más similar a 60Hz \n" + "para evitar cambios en el tono. Si tu \n" + "monitor no funciona a 60Hz o similar, \n" + "desactiva la sincronía vertical y deja \n" + "esta opción en su valor predeterminado.", sizeof(u)); + strlcat(s, t, len); + strlcat(s, u, len); + } + break; + case MENU_LABEL_VIDEO_ROTATION: + snprintf(s, len, + "Fuerza una rotación concreta \n" + "de la pantalla.\n" + " \n" + "La rotación se añade a las rotaciones \n" + "que indique el núcleo libretro (ver \n" + "Permitir rotación de vídeo)."); + break; + case MENU_LABEL_VIDEO_SCALE: + snprintf(s, len, + "Resolución en pantalla completa.\n" + " \n" + "Si se indica 0, se utilizará la \n" + "resolución del entorno.\n"); + break; + case MENU_LABEL_FASTFORWARD_RATIO: + snprintf(s, len, + "Proporción de aceleración." + " \n" + "Indica la velocidad máxima a la que \n" + "se ejecutará el contenido mientras \n" + "es acelerado.\n" + " \n" + " (Por ejemplo, 5.0 para un contenido \n" + "a 60 FPS => Máximo de 300 FPS).\n" + " \n" + "RetroArch pasará a segundo plano \n" + "para asegurarse de que no se supere \n" + "la velocidad máxima. Este límite \n" + "no es completamente preciso."); + break; + case MENU_LABEL_VIDEO_MONITOR_INDEX: + snprintf(s, len, + "Monitor preferido.\n" + " \n" + "0 (predeterminado) significa que no hay \n" + "preferencia por un monitor en concreto, \n" + "y de 1 en adelante (siendo 1 el primer \n" + "monitor) sugiere a RetroArch que \n" + "utilice ese monitor específico."); + break; + case MENU_LABEL_VIDEO_CROP_OVERSCAN: + snprintf(s, len, + "Obliga a recortar los fotogramas \n" + "con overscan.\n" + " \n" + "El comportamiento exacto de esta \n" + "opción depende de la implementación \n" + "del núcleo."); + break; + case MENU_LABEL_VIDEO_SCALE_INTEGER: + snprintf(s, len, + "Solo escala el vídeo con números \n" + "enteros.\n" + " \n" + "El tamaño base depende de la geometría \n" + "que indique el sistema y de la \n" + "proporción de aspecto.\n" + " \n" + "Si no se ha configurado la opción \n" + "Forzar proporción, los valores X/Y \n" + "se escalarán de forma independiente \n" + "según números enteros."); + break; + case MENU_LABEL_AUDIO_VOLUME: + snprintf(s, len, + "Volumen de sonido expresado en dB.\n" + " \n" + "0 dB es el volumen normal, sin ganancia \n" + "aplicada. La ganancia se puede controlar \n" + "en tiempo real con los botones de \n" + "Subir volumen / Bajar volumen."); + break; + case MENU_LABEL_AUDIO_RATE_CONTROL_DELTA: + snprintf(s, len, + "Control de la frecuencia de sonido.\n" + " \n" + "Si seleccionas 0, desactivarás el control \n" + "de la frecuencia. Cualquier otro valor \n" + "cambiará el delta de control de la \n" + "frecuencia de sonido.\n" + " \n" + "Define cuánta frecuencia de entrada puede \n" + "ajustarse de forma dinámica.\n" + " \n" + " La frecuencia de entrada se define como: \n" + " frecuencia de entrada * (1.0 +/- \n" + "(delta de control de frecuencia))"); + break; + case MENU_LABEL_AUDIO_MAX_TIMING_SKEW: + snprintf(s, len, + "Variación máxima en la sincronía de \n" + "sonido.\n" + " \n" + "Define la variación máxima de la \n" + "frecuencia de entrada. Podrías aumentar \n" + "el valor para cambiar la sincronía, por \n" + "ejemplo, si ejecutas núcleos PAL en \n" + "monitores NTSC, a cambio de tener un \n" + "tono de sonido impreciso.\n" + " \n" + " La frecuencia de entrada se define como: \n" + " frecuencia de entrada * (1.0 +/- \n" + "(variación máxima de sincronía))"); + break; + case MENU_LABEL_OVERLAY_NEXT: + snprintf(s, len, + "Cambia a la siguiente superposición.\n" + " \n" + "Se expande alrededor."); + break; + case MENU_LABEL_LOG_VERBOSITY: + snprintf(s, len, + "Activa o desactiva el nivel de \n" + "verbosidad del frontend."); + break; + case MENU_LABEL_VOLUME_UP: + snprintf(s, len, + "Aumenta el volumen del sonido."); + break; + case MENU_LABEL_VOLUME_DOWN: + snprintf(s, len, + "Disminuye el volumen del sonido."); + break; + case MENU_LABEL_VIDEO_DISABLE_COMPOSITION: + snprintf(s, len, + "Desactiva por la fuerza la composición.\n" + "Actualmente solo funciona en \n" + "Windows Vista/7."); + break; + case MENU_LABEL_PERFCNT_ENABLE: + snprintf(s, len, + "Activa o desactiva los contadores \n" + "de rendimiento del frontend."); + break; + case MENU_LABEL_SYSTEM_DIRECTORY: + snprintf(s, len, + "Carpeta de sistemas. \n" + " \n" + "Asigna la carpeta 'system'.\n" + "Los núcleos pueden buscar dentro \n" + "de ella para cargar BIOS, \n" + "configuraciones específicas para \n" + "un sistema, etc."); + break; + case MENU_LABEL_SAVESTATE_AUTO_SAVE: + snprintf(s, len, + "Guarda automáticamente un guardado rápido \n" + "al terminar la ejecución de RetroArch.\n" + " \n" + "RetroArch cargará automáticamente cualquier \n" + "guardado rápido que se encuentre en esa ruta \n" + "al arrancar si la opción 'Cargar guardado \n" + "rápido automáticamente' está activada."); + break; + case MENU_LABEL_VIDEO_THREADED: + snprintf(s, len, + "Utilizar un controlador de vídeo \n" + "por hilos.\n" + " \n" + "Esta opción podría mejorar el rendimiento \n" + "a costa de ganar retraso y perder fluidez \n" + "de vídeo."); + break; + case MENU_LABEL_VIDEO_VSYNC: + snprintf(s, len, + "Sincronía vertical para vídeo.\n"); + break; + case MENU_LABEL_VIDEO_HARD_SYNC: + snprintf(s, len, + "Intenta sincronizar la CPU y la GPU \n" + "de una forma más estricta.\n" + " \n" + "Puede reducir el retraso a costa \n" + "de perder rendimiento."); + break; + case MENU_LABEL_REWIND_GRANULARITY: + snprintf(s, len, + "Nivel de detalle del rebobinado.\n" + " \n" + "Cuando se rebobina un número determinado \n" + "de fotogramas, puedes rebobinar varios \n" + "fotogramas a la vez, aumentando la \n" + "velocidad de rebobinado."); + break; + case MENU_LABEL_SCREENSHOT: + snprintf(s, len, + "Capturar la pantalla."); + break; + case MENU_LABEL_VIDEO_FRAME_DELAY: + snprintf(s, len, + "Ajusta la cantidad de retraso en \n" + "milisegundos después de la sincronía \n" + "vertical antes de ejecutar el núcleo.\n" + "\n" + "Puede reducir el retraso a costa de \n" + "aumentar la probabilidad de perder \n" + "fluidez.\n" + " \n" + "El valor máximo es 15."); + break; + case MENU_LABEL_VIDEO_HARD_SYNC_FRAMES: + snprintf(s, len, + "Ajusta la cantidad de fotogramas \n" + "que puede adelantar la CPU a la GPU \n" + "al utilizar 'Sincronía estricta \n" + "de CPU'.\n" + " \n" + "El valor máximo es 3.\n" + " \n" + " 0: Sincroniza inmediatamente a GPU.\n" + " 1: Sincroniza con el fotograma anterior.\n" + " 2: Etc..."); + break; + case MENU_LABEL_VIDEO_BLACK_FRAME_INSERTION: + snprintf(s, len, + "Introduce un fotograma negro \n" + "entre fotogramas.\n" + " \n" + "Es útil para los monitores que \n" + "funcionan a 120 Hz y quieren jugar \n" + "a material a 60 Hz eliminando el \n" + "ghosting.\n" + " \n" + "La frecuencia de actualización de vídeo \n" + "aún debe configurarse como si utilizaras \n" + "un monitor de 60 Hz (divide la frecuencia \n" + "de actualización entre 2)."); + break; + case MENU_LABEL_RGUI_SHOW_START_SCREEN: + snprintf(s, len, + "Muestra la pantalla de inicio en el menú.\n" + "Se desactiva automáticamente cuando se \n" + "ha visto por primera vez.\n" + " \n" + "Esta opción solo se actualiza dentro \n" + "de la configuración si 'Guardar \n" + "configuración al salir' está activado.\n"); + break; + case MENU_LABEL_CORE_SPECIFIC_CONFIG: + snprintf(s, len, + "Carga un archivo de configuración \n" + "concreto en función del núcleo \n" + "que se vaya a utilizar.\n"); + break; + case MENU_LABEL_VIDEO_FULLSCREEN: + snprintf(s, len, + "Activa o desactiva el modo \n" + "en pantalla completa."); + break; + case MENU_LABEL_BLOCK_SRAM_OVERWRITE: + snprintf(s, len, + "Impide que la SRAM sea sobrescrita \n" + "mientras se carga un guardado rápido.\n" + " \n" + "Podría provocar defectos en los \n" + "juegos."); + break; + case MENU_LABEL_PAUSE_NONACTIVE: + snprintf(s, len, + "Pausa el juego cuando la ventana \n" + "pasa a estar en segundo plano."); + break; + case MENU_LABEL_VIDEO_GPU_SCREENSHOT: + snprintf(s, len, + "Si es posible, las capturas de \n" + "pantalla se realizan del material \n" + "pos-shaders de GPU."); + break; + case MENU_LABEL_SCREENSHOT_DIRECTORY: + snprintf(s, len, + "Carpeta de capturas de pantalla. \n" + " \n" + "En esta carpeta se guardarán \n" + "las capturas de pantalla." + ); + break; + case MENU_LABEL_VIDEO_SWAP_INTERVAL: + snprintf(s, len, + "Intervalo de cambio de la \n" + "sincronía vertical.\n" + " \n" + "Utiliza un intervalo personalizado para \n" + "la sincronía vertical. Utiliza este \n" + "parámetro para reducir a la mitad \n" + "la frecuencia de actualización \n" + "del monitor."); + break; + case MENU_LABEL_SAVEFILE_DIRECTORY: + snprintf(s, len, + "Carpeta de partidas guardadas. \n" + " \n" + "Almacena todas las partidas guardadas \n" + "(*.srm) en esta carpeta. Incluye los \n" + "archivos relacionados, como .bsv, .rt, \n" + ".psrm, etcétera.\n" + " \n" + "Esta carpeta será ignorada si se \n" + "utilizan explícitamente las opciones por \n" + "línea de comandos."); + break; + case MENU_LABEL_SAVESTATE_DIRECTORY: + snprintf(s, len, + "Carpeta de guardados rápidos. \n" + " \n" + "Almacena todos los guardados rápidos \n" + "(*.state) en esta carpeta.\n" + " \n" + "Esta carpeta será ignorada si se \n" + "utilizan explícitamente las opciones por \n" + "línea de comandos."); + break; + case MENU_LABEL_ASSETS_DIRECTORY: + snprintf(s, len, + "Carpeta de recursos. \n" + " \n" + "Esta ubicación es donde las interfaces \n" + "de menús buscan de forma predeterminada \n" + "los recursos a cargar, etc."); + break; + case MENU_LABEL_DYNAMIC_WALLPAPERS_DIRECTORY: + snprintf(s, len, + "Carpeta de fondos dinámicos de pantalla. \n" + " \n" + "Aquí se almacenan los fondos de pantalla \n" + "que el menú cargará de forma dinámica \n" + "según el contexto."); + break; + case MENU_LABEL_SLOWMOTION_RATIO: + snprintf(s, len, + "Cantidad de velocidad reducida." + " \n" + "Al reducir la velocidad, el contenido \n" + "se ralentizará según este factor."); + break; + case MENU_LABEL_INPUT_AXIS_THRESHOLD: + snprintf(s, len, + "Define el margen de los ejes.\n" + " \n" + "Indica la distancia mínima que debe \n" + "recorrer un eje para que provoque \n" + "una pulsación del botón.\n" + "Los valores posibles son [0.0, 1.0]."); + break; + case MENU_LABEL_INPUT_TURBO_PERIOD: + snprintf(s, len, + "Período de turbo.\n" + " \n" + "Describe la velocidad con la que se \n" + "pulsan los botones en el modo turbo." + ); + break; + case MENU_LABEL_INPUT_AUTODETECT_ENABLE: + snprintf(s, len, + "Activa la autoconfiguración de \n" + "entrada. \n" + " \n" + "Intentará configurar de forma \n" + "automática los mandos que se \n" + "conecten en cualquier momento, \n" + "como el sistema Plug-and-play."); + break; + case MENU_LABEL_CAMERA_ALLOW: + snprintf(s, len, + "Permite o no el acceso a la cámara \n" + "por parte de los núcleos."); + break; + case MENU_LABEL_LOCATION_ALLOW: + snprintf(s, len, + "Permite o no los servicios de \n" + "localización por parte de los núcleos."); + break; + case MENU_LABEL_TURBO: + snprintf(s, len, + "Permite usar el turbo.\n" + " \n" + "Si mantienes pulsado el botón de turbo \n" + "mientras pulsas otro botón, este último \n" + "entrará en un modo turbo en el que el \n" + "estado del botón se modula mediante una \n" + "señal periódica. \n" + " \n" + "La modulación se detiene cuando se deja \n" + "de pulsar el botón original (no el botón \n" + "de turbo)."); + break; + case MENU_LABEL_OSK_ENABLE: + snprintf(s, len, + "Activa o desactiva el teclado \n" + "en pantalla."); + break; + case MENU_LABEL_AUDIO_MUTE: + snprintf(s, len, + "Silencia o no el sonido."); + break; + case MENU_LABEL_REWIND: + snprintf(s, len, + "Mantén pulsado este botón para rebobinar.\n" + " \n" + "Para que este botón funcione, debes tener \n" + "activada la opción de rebobinar."); + break; + case MENU_LABEL_EXIT_EMULATOR: + snprintf(s, len, + "Asigna una tecla para abandonar \n" + "RetroArch limpiamente." +#if !defined(RARCH_MOBILE) && !defined(RARCH_CONSOLE) + "\nSi cierras el programa con \n" + "cualquier forma brusca (SIGKILL, \n" + "etc.) no se guardará la RAM, etc. \n" + "En sistemas Unix, SIGINT/SIGTERM \n" + "permite un cierre limpio." +#endif + ); + break; + case MENU_LABEL_LOAD_STATE: + snprintf(s, len, + "Carga el guardado rápido."); + break; + case MENU_LABEL_SAVE_STATE: + snprintf(s, len, + "Guarda rápidamente la partida."); + break; + case MENU_LABEL_NETPLAY_FLIP_PLAYERS: + snprintf(s, len, + "Cambia los usuarios en red."); + break; + case MENU_LABEL_CHEAT_INDEX_PLUS: + snprintf(s, len, + "Aumenta el índice de trucos.\n"); + break; + case MENU_LABEL_CHEAT_INDEX_MINUS: + snprintf(s, len, + "Disminuye el índice de trucos.\n"); + break; + case MENU_LABEL_SHADER_PREV: + snprintf(s, len, + "Aplica el shader anterior de la carpeta."); + break; + case MENU_LABEL_SHADER_NEXT: + snprintf(s, len, + "Aplica el siguiente shader de la carpeta."); + break; + case MENU_LABEL_RESET: + snprintf(s, len, + "Reinicia el contenido.\n"); + break; + case MENU_LABEL_PAUSE_TOGGLE: + snprintf(s, len, + "Alterna el estado en pausa."); + break; + case MENU_LABEL_CHEAT_TOGGLE: + snprintf(s, len, + "Alterna el índice de trucos.\n"); + break; + case MENU_LABEL_HOLD_FAST_FORWARD: + snprintf(s, len, + "Mantén pulsado este botón para avanzar \n" + "rápidamente. Suéltalo para desactivar \n" + "esta función."); + break; + case MENU_LABEL_SLOWMOTION: + snprintf(s, len, + "Mantén pulsado este botón para \n" + "ir a cámara lenta."); + break; + case MENU_LABEL_FRAME_ADVANCE: + snprintf(s, len, + "Avanza un fotograma mientras \n" + "el contenido esté en pausa."); + break; + case MENU_LABEL_MOVIE_RECORD_TOGGLE: + snprintf(s, len, + "Activa o desactiva la grabación."); + break; + case MENU_LABEL_L_X_PLUS: + case MENU_LABEL_L_X_MINUS: + case MENU_LABEL_L_Y_PLUS: + case MENU_LABEL_L_Y_MINUS: + case MENU_LABEL_R_X_PLUS: + case MENU_LABEL_R_X_MINUS: + case MENU_LABEL_R_Y_PLUS: + case MENU_LABEL_R_Y_MINUS: + snprintf(s, len, + "El eje de un joystick analógico \n" + "(estilo DualShock).\n" + " \n" + "Se asigna como siempre, sin embargo, si se \n" + "asigna un eje analógico real, puede leerse \n" + "de forma analógica.\n" + " \n" + "El eje X positivo es hacia la derecha. \n" + "El eje Y positivo es hacia abajo."); + break; + case MENU_LABEL_VALUE_WHAT_IS_A_CORE_DESC: + snprintf(s, len, + "RetroArch, por si solo, no hace nada. \n" + " \n" + "Para que haga algo necesitas cargar \n" + "un programa en él. \n" + "\n" + "Llamamos a estos programas 'núcleos \n" + "libretro', o 'núcleos' para abreviar. \n" + " \n" + "Para cargar un núcleo, selecciona uno \n" + "en 'Cargar núcleo'. \n" + " \n" +#ifdef HAVE_NETWORKING + "Puedes conseguir núcleos de varias formas: \n" + "* Descárgalos en:\n" + "'%s' -> '%s'.\n" + "* Cópialos manualmente a:\n" + "'%s'.", + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONLINE_UPDATER), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_UPDATER_LIST), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) +#else + "Puedes conseguir núcleos si los\n" + "trasladas a mano en la carpeta\n" + "'%s'.", + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) +#endif + ); + break; + case MENU_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD_DESC: + snprintf(s, len, + "Puedes cambiar la superposición del \n" + "mando virtual si vas a '%s' \n" + "-> '%s'." + " \n" + "Desde ahí puedes cambiar la superposición, \n" + "el tamaño y opacidad de sus botones, etc.\n" + " \n" + "NOTA: Las superposiciones de mandos \n" + "virtuales están ocultas de forma \n" + "predeterminada si estás dentro del menú. \n" + "Si quieres cambiar este comportamiento, \n" + "cambia '%s' a Desactivado/false.", + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OVERLAY_SETTINGS), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_HIDE_IN_MENU) + ); + break; + default: + if (s[0] == '\0') + strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); + return -1; + } + + return 0; +} + const char *msg_hash_to_str_es(enum msg_hash_enums msg) { switch (msg) diff --git a/intl/msg_hash_fr.c b/intl/msg_hash_fr.c index 9d505fc133..d89bdbf412 100644 --- a/intl/msg_hash_fr.c +++ b/intl/msg_hash_fr.c @@ -30,6 +30,24 @@ /* DO NOT REMOVE THIS. If it causes build failure, it's because you saved the file as UTF-8. Read the above comment. */ extern const char force_iso_8859_1[sizeof("äÄöÖßüÜ")==7+1 ? 1 : -1]; +int menu_hash_get_help_fr(uint32_t hash, char *s, size_t len) +{ + int ret = 0; + /* If this one throws errors, stop sledgehammering square pegs into round holes and */ + /* READ THE COMMENTS at the top of the file. */ + (void)sizeof(force_iso_8859_1); + + switch (hash) + { + case 0: + default: + ret = -1; + break; + } + + return ret; +} + const char *msg_hash_to_str_fr(enum msg_hash_enums msg) { switch (msg) diff --git a/intl/msg_hash_it.c b/intl/msg_hash_it.c index b33ce7077f..599a1147da 100644 --- a/intl/msg_hash_it.c +++ b/intl/msg_hash_it.c @@ -18,6 +18,7 @@ #include #include "../msg_hash.h" +#include "../configuration.h" /* IMPORTANT: * For non-english characters to work without proper unicode support, @@ -28,6 +29,1087 @@ /* DO NOT REMOVE THIS. If it causes build failure, it's because you saved the file as UTF-8. Read the above comment. */ extern const char force_iso_8859_1[sizeof("àèéìòù")==6+1 ? 1 : -1]; +int menu_hash_get_help_it(uint32_t hash, char *s, size_t len) +{ + uint32_t driver_hash = 0; + settings_t *settings = config_get_ptr(); + + /* If this one throws errors, stop sledgehammering square pegs into round holes and */ + /* READ THE COMMENTS at the top of the file. */ + (void)sizeof(force_iso_8859_1); + + switch (hash) + { + case MENU_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC: + { + /* Work around C89 limitations */ + char u[501]; + char t[501]; + + strlcpy(t, + "RetroArch si basa su una forma unica di\n" + "sincronizzazione audio/video che necessita essere\n" + "calibrata rispetto alla frequenza di aggiornamento\n" + "del tuo schermo per ottenere le migliori performance.\n" + " \n" + "Se accadono alcuni crepitii audio o del tearing\n" + "video, di solito significa che hai bisogno di\n" + "calibrare i settaggi. Alcuni suggerimenti sotto:\n" + " \n", sizeof(t)); + snprintf(u, sizeof(u), + "a) Vai su '%s' -> '%s', e abilita\n" + "'Threaded Video'. La frequenza di aggiornamento non sarà\n" + "influenzata in questo modo, il framerate sarà più alto,\n" + "ma il video potrebbe risultare meno fluido.\n" + "b) Vai su '%s' -> '%s', e guarda su\n" + "'%s'. Lascia caricare per\n" + "2048 fotogrammi, allora premi 'OK'.", + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_REFRESH_RATE_AUTO)); + strlcat(s, t, len); + strlcat(s, u, len); + } + break; + case MENU_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC: + snprintf(s, len, + "Per scansionare il contenuto, vai a '%s' e\n" + "seleziona '%s' oppure '%s'.\n" + " \n" + "I files saranno comparati alle entrate del database.\n" + "Se c'è un riscontro, sarà aggiunta un'entrata\n" + "alla collezione.\n" + " \n" + "Puoi accedere facilmente a questo contenuto\n" + "andando su '%s' ->\n" + "'%s'\n" + "invece di dover andare attraverso il\n" + "filebrowser ogni volta.\n" + " \n" + "NOTA: Il contenuto per alcuni core potrebbe non essere\n" + "scansionabile. Gli esempi includono: \n" + "MAME, FBA, e forse altri core." + , + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ADD_CONTENT_LIST), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_DIRECTORY), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_FILE), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CONTENT_COLLECTION_LIST) + ); + break; + case MENU_LABEL_VALUE_MENU_CONTROLS_PROLOG: + snprintf(s, len, + "Puoi usare i seguenti controlli sotto \n" + "sia su gamepad che su tastiera\n" + "per controllare il menù: \n" + " \n" + ); + break; + case MENU_LABEL_VALUE_EXTRACTING_PLEASE_WAIT: + strlcpy(s, "Estraendo, per favore attendi...\n", len); + break; + case MENU_LABEL_WELCOME_TO_RETROARCH: + snprintf(s, len, + "Benvenuto a RetroArch\n" + "\n" + "Per ulteriori informazioni, vai su Aiuto.\n" + ); + break; + case MENU_LABEL_INPUT_DRIVER: + if (settings) + driver_hash = msg_hash_calculate(settings->input.driver); + + switch (driver_hash) + { + case MENU_LABEL_INPUT_DRIVER_UDEV: + snprintf(s, len, + "udev Input driver. \n" + " \n" + "Questo driver può caricare senza X. \n" + " \n" + "Usa la recente evdev joypad API \n" + "per il supporto del joystick. Supporta \n" + "hotplugging e force feedback (se \n" + "supportato dal dispositivo). \n" + " \n" + "Il driver legge gli eventi evdev per il supporto \n" + "della tastiera. Supporta anche la callback della tastiera, \n" + "mouse e touchpads. \n" + " \n" + "Come predefinito nella maggior parte delle distribuzioni, i nodi /dev/input \n" + "sono only-root (modalità 600). Puoi settare una regola udev \n" + "che fa queste accessibili ai non-root." + ); + break; + case MENU_LABEL_INPUT_DRIVER_LINUXRAW: + snprintf(s, len, + "linuxraw Input driver. \n" + " \n" + "questo driver richiede un'attiva TTY. Gli eventi \n" + "della tastiera sono letti direttamente dal TTY che \n" + "che lo rende più semplice, ma non tanto flessibile quanto udev. \n" "Mouse, ecc., non sono supportati. \n" + " \n" + "Questo driver usa la più vecchia API per il joystick \n" + "(/dev/input/js*)."); + break; + default: + snprintf(s, len, + "Driver input.\n" + " \n" + "Dipende dal driver video, potrebbe \n" + "forzare un differente driver input."); + break; + } + break; + case MENU_LABEL_LOAD_CONTENT: + snprintf(s, len, + "Carica Contenuto. \n" + "Seleziona per contenuto. \n" + " \n" + "Per caricare i giochi, hai bisogno di \n" + "un 'Core' da usare, e un gioco per quel core.\n" + " \n" + "Per controllare dove il menù comincia \n" + " a selezionare per contenuto, imposta \n" + "'File Browser Directory'. \n" + "Se non impostato, si avvierà nella root. \n" + " \n" + "Il browser filtrerà le\n" + "estensioni per l'ultimo core impostato \n" + "in 'Carica Core', e userà quel core \n" + "quando il gioco viene caricato." + ); + break; + case MENU_LABEL_CORE_LIST: + snprintf(s, len, + "Carica Core. \n" + " \n" + "Sfoglia per una implementazione per il \n" + "core libretro. Dove il browser \n" + "si avvia dipende dal percorso impostato per \n" + "Core Directory. Se vuoto, si avvierà nella root. \n" + " \n" + "Se la Core Directory è una directory, il menù \n" + "userà quella come cartella principale. Se la Core \n" + "Directory è un percorso completo, si avvierà \n" + "nella cartella dove si trova il file."); + break; + case MENU_LABEL_LOAD_CONTENT_HISTORY: + snprintf(s, len, + "Caricando contenuto dalla cronologia. \n" + " \n" + "Quando il contenuto è caricato, le combinazioni \n" + "contenuto e core sono salvati nella cronologia. \n" + " \n" + "La cronologia è salvata in un file nella stessa \n" + "directory come il file di configurazione RetroArch. Se \n" + "nessun file di configurazione viene caricato all'avvio, la \n" + "cronologia non sarà salvata o caricata, e non apparirà \n" + "nel menù principale." + ); + break; + case MENU_LABEL_VIDEO_DRIVER: + if (settings) + driver_hash = msg_hash_calculate(settings->video.driver); + + switch (driver_hash) + { + case MENU_LABEL_VIDEO_DRIVER_GL: + snprintf(s, len, + "Diver video OpenGL. \n" + " \n" + "Questo driver permette ai libretro core GL di \n" + "essere usati in aggiunta alle implementazioni \n" + "renderizzate via software dei core.\n" + " \n" + "Le performance per il rendering software e \n" + "le implementazioni del libretro core G dipende \n" + "dalla tua scheda grafica \n" + "sottostante driver GL)."); + break; + case MENU_LABEL_VIDEO_DRIVER_SDL2: + snprintf(s, len, + "Driver video SDL 2.\n" + " \n" + "Questo è un driver video SDL 2 renderizzato \n" + "via software.\n" + " \n" + "Le performance per le implementazioni dei core \n" + "renderizzati via software dipende \n" + "dall'implementazzione sulla tua piattaforma SDL."); + break; + case MENU_LABEL_VIDEO_DRIVER_SDL1: + snprintf(s, len, + "Driver video SDL.\n" + " \n" + "Questo è un driver video SDL 1.2 renderizzato \n" + "via software.\n" + " \n" + "Le performance sono considerate quasi ottimali. \n" + "Considera di usare questo soltanto come ultima scelta."); + break; + case MENU_LABEL_VIDEO_DRIVER_D3D: + snprintf(s, len, + "Driver video Direct3D. \n" + " \n" + "Le performance per i core renderizzati via \n" + "software dipende dal driver D3D inerente \n" + "alla tua scheda video)."); + break; + case MENU_LABEL_VIDEO_DRIVER_EXYNOS: + snprintf(s, len, + "Exynos-G2D Video Driver. \n" + " \n" + "Questo è un driver video Exynos a basso livello. \n" + "Usa il blocco G2D nei SoC Samsung Exynos \n" + "per operazioni blit. \n" + " \n" + "Le performance per i core renderizzati via software \n" + "dovrebbero essere ottimali."); + break; + case MENU_LABEL_VIDEO_DRIVER_SUNXI: + snprintf(s, len, + "Driver video Sunxi-G2D. \n" + " \n" + "Questo è un driver video Sunxi a basso livello. \n" + "Usa il blocco G2D nei Soc Allwinner."); + break; + default: + snprintf(s, len, + "Driver video attuale."); + break; + } + break; + case MENU_LABEL_AUDIO_DSP_PLUGIN: + snprintf(s, len, + "Plugin audio DSP.\n" + "Processa l'audio prima di inviarlo \n" + "al driver." + ); + break; + case MENU_LABEL_AUDIO_RESAMPLER_DRIVER: + if (settings) + driver_hash = msg_hash_calculate(settings->audio.resampler); + + switch (driver_hash) + { + case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_SINC: + snprintf(s, len, + "Implementazione SINC in modalità finestra."); + break; + case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_CC: + snprintf(s, len, + "Implementazione coseno complesso."); + break; + } + break; + case MENU_LABEL_VIDEO_SHADER_PRESET: + snprintf(s, len, + "Carica Shader Preimpostati. \n" + " \n" + " Carica un " +#ifdef HAVE_CG + "Cg" +#endif +#ifdef HAVE_GLSL +#ifdef HAVE_CG + "/" +#endif + "GLSL" +#endif +#ifdef HAVE_HLSL +#if defined(HAVE_CG) || defined(HAVE_HLSL) + "/" +#endif + "HLSL" +#endif + " preimposta direttamente. \n" + "Il menù degli shader è aggiornato di conseguenza. \n" + " \n" + "Se la CGP usa metodi di scala che non sono \n" + "semplici, (es. scala fonte, stessa scala \n" + "fattore per X/Y), il fattore di scala mostrato \n" + "nel menù potrebbe non essere corretto." + ); + break; + case MENU_LABEL_VIDEO_SHADER_SCALE_PASS: + snprintf(s, len, + "Scala per questo passaggio. \n" + " \n" + "Il fattore di scala accumula, es. 2x \n" + "per il primo passaggio e 2x per il secondo \n" + "passaggio darà una scala totale di 4x. \n" + " \n" + "Se c'è un fattore di scala per l'ultimo \n" + "passaggio, il risultato è allungare lo \n" + "schermo con il filtro specificato in \n" + "'Filtro Predefinito'. \n" + " \n" + "Se 'Non considerare' è impostato, sia la scala \n" + "1x che allunga a pieno schermo saranno \n" + "usati a seconda se è o non è l'ultimo \n" + "passaggio." + ); + break; + case MENU_LABEL_VIDEO_SHADER_NUM_PASSES: + snprintf(s, len, + "Passaggi Shader. \n" + " \n" + "RetroArch permette di mixare e confrontare vari \n" + "shaders con i passaggi arbitrari dello shader, con \n" + "filtri hardware personalizzati e fattori di scala. \n" + " \n" + "Questa opzione specifica il numero dei passaggi \n" + "shader da usare. Se imposti questo a 0, e usi \n" + "Applica modifiche agli shader, usi uno shader 'vuoto'. \n" + " \n" + "L'opzione Filtro Predefinito riguarderà il \n" + "filtro di allungamento immagine."); + break; + case MENU_LABEL_VIDEO_SHADER_PARAMETERS: + snprintf(s, len, + "Parametri shader. \n" + " \n" + "Modifica direttamente l'attuale shader. Non sarà \n" + "salvato al file preimpostato CGP/GLSLP."); + break; + case MENU_LABEL_VIDEO_SHADER_PRESET_PARAMETERS: + snprintf(s, len, + "Parametri Shader Preimpostati. \n" + " \n" + "Modifica lo shader preimpostato attualmente nel menù." + ); + break; + case MENU_LABEL_VIDEO_SHADER_PASS: + snprintf(s, len, + "Percorso allo shader. \n" + " \n" + "Tutti gli shaders devono essere dello stesso \n" + "tipo (es. CG, GLSL or HLSL). \n" + " \n" + "Imposta la Directory Shader per stabilire dove \n" + "il browser comincia a cercare gli \n" + "shader." + ); + break; + case MENU_LABEL_CONFIG_SAVE_ON_EXIT: + snprintf(s, len, + "Salva la configurazione sul disco all'uscita.\n" + "Utile per i menù in quanto i settaggi possono \n" + "essere modificati. Sovrascrive la configurazione.\n" + " \n" + "#include ed i commenti non sono \n" + "conservati. \n" + " \n" + "Per design, il file di configurazione è \n" + "considerato immutabile in quanto è \n" + "piacevolmente mantenuto dall'utente, \n" + "e non dovrebbe essere sovrascritto \n" + "alle spalle dell'utente." +#if defined(RARCH_CONSOLE) || defined(RARCH_MOBILE) + "\nQuesto non è il caso per le \n" + "console comunque, dove \n" + "guardare al file di configurazione \n" + "manualmente non è veramente un'opzione." +#endif + ); + break; + case MENU_LABEL_VIDEO_SHADER_FILTER_PASS: + snprintf(s, len, + "Filtro hardware per questo passaggio. \n" + " \n" + "Se 'Non prendere cura' è impostato, allora il \n" + "'Filtro Predefinito' sarà usato." + ); + break; + case MENU_LABEL_AUTOSAVE_INTERVAL: + snprintf(s, len, + "Salva automaticamente la SRAM non-volatile \n" + "ad un itervallo regolare.\n" + " \n" + "Questo è disattivato come predefinito a meno che non \n" + "è impostato diversamente. L'intervallo è misurato in \n" + "secondi. \n" + " \n" + "Il valore 0 disattiva il salvataggio automatico."); + break; + case MENU_LABEL_INPUT_BIND_DEVICE_TYPE: + snprintf(s, len, + "Tipo di dispositivo di input. \n" + " \n" + "Sceglie quale tipo di dispositivo usare. Questo è \n" + "rilevante per il libretro core." + ); + break; + case MENU_LABEL_LIBRETRO_LOG_LEVEL: + snprintf(s, len, + "Imposta il livello dei log per i libretro core \n" + "(GET_LOG_INTERFACE). \n" + " \n" + " Se il livello dei log rilasciato da un libretro \n" + " core è sotto il livello libretro_log, \n" + " sarà ignorato.\n" + " \n" + " DEBUG log sono sempre ignorati a meno che \n" + " la modalità verbose mode è attivata (--verbose).\n" + " \n" + " DEBUG = 0\n" + " INFO = 1\n" + " WARN = 2\n" + " ERROR = 3" + ); + break; + case MENU_LABEL_STATE_SLOT_INCREASE: + case MENU_LABEL_STATE_SLOT_DECREASE: + snprintf(s, len, + "Slot dello stato di salvataggio.\n" + " \n" + " Con lo slot impostato a 0, il nome dello stato di salvataggio è *.state \n" + " (o che cosa è stato impostato sulla riga di comando).\n" + "Quando lo slot è != 0, il percorso sarà (percorso)(d), \n" + "dove (d) è il numero dello slot."); + break; + case MENU_LABEL_SHADER_APPLY_CHANGES: + snprintf(s, len, + "Applica le modifiche allo shader. \n" + " \n" + "Dopo che modifichi i settaggi dello shader, usa questo per \n" + "applicare i cambiamenti. \n" + " \n" + "Modificare i settaggi dello shader è un \n" + "operazione costosa quindi deve essere \n" + "fatta esplicitamente. \n" + " \n" + "Quando applichi gli shader, i settaggi del menù \n" + "degli shader sono salvati ad un file temporaneo (sia \n" + "menu.cgp che menu.glslp) e caricati. Il file \n" + "rimane dopo che RetroArch esce. Il file è \n" + "salvato alla Directory Shader." + ); + break; + case MENU_LABEL_INPUT_BIND_DEVICE_ID: + snprintf(s, len, + "Dispositivo di input. \n" + " \n" + "Scegli quale gamepad usare per l'utente N. \n" + "Il nome del pad è disponibile." + ); + break; + case MENU_LABEL_MENU_TOGGLE: + snprintf(s, len, + "Attiva menù."); + break; + case MENU_LABEL_GRAB_MOUSE_TOGGLE: + snprintf(s, len, + "Attiva presa mouse.\n" + " \n" + "Quando usi il mouse, RetroArch nasconde il \n" + "mouse, e tiene il puntatore del mouse dentro \n" + "la finestra per permettere al relativo input del mouse \n" + "di funzionare meglio."); + break; + case MENU_LABEL_DISK_NEXT: + snprintf(s, len, + "Spostati tra le immagini del disco. Usa dopo \n" + "l'espulsione. \n" + " \n" + " Completa premendo il tasto espulsione di nuovo."); + break; + case MENU_LABEL_VIDEO_FILTER: +#ifdef HAVE_FILTERS_BUILTIN + snprintf(s, len, + "Filtro video basato sulla CPU."); +#else + snprintf(s, len, + "Filtro video basato sulla CPU.\n" + " \n" + "Percorso di una libreria dinamica."); +#endif + break; + case MENU_LABEL_AUDIO_DEVICE: + snprintf(s, len, + "Escludi il dispositivo audio predefinito \n" + "che il driver audio usa.\n" + "Dipende dal driver. E.g.\n" +#ifdef HAVE_ALSA + " \n" + "ALSA vuole un dipositivo PCM." +#endif +#ifdef HAVE_OSS + " \n" + "OSS vuole un percorso (e.g. /dev/dsp)." +#endif +#ifdef HAVE_JACK + " \n" + "JACK vuole i nomi delle porte (e.g. system:playback1\n" + ",system:playback_2)." +#endif +#ifdef HAVE_RSOUND + " \n" + "RSound vuole l'indirizzo IP di un \n" + "server RSound." +#endif + ); + break; + case MENU_LABEL_DISK_EJECT_TOGGLE: + snprintf(s, len, + "Toggles eject for disks.\n" + " \n" + "Used for multiple-disk content."); + break; + case MENU_LABEL_ENABLE_HOTKEY: + snprintf(s, len, + "Enable other hotkeys.\n" + " \n" + " If this hotkey is bound to either keyboard, \n" + "joybutton or joyaxis, all other hotkeys will \n" + "be disabled unless this hotkey is also held \n" + "at the same time. \n" + " \n" + "This is useful for RETRO_KEYBOARD centric \n" + "implementations which query a large area of \n" + "the keyboard, where it is not desirable that \n" + "hotkeys get in the way."); + break; + case MENU_LABEL_REWIND_ENABLE: + snprintf(s, len, + "Enable rewinding.\n" + " \n" + "This will take a performance hit, \n" + "so it is disabled by default."); + break; + case MENU_LABEL_LIBRETRO_DIR_PATH: + snprintf(s, len, + "Core Directory. \n" + " \n" + "A directory for where to search for \n" + "libretro core implementations."); + break; + case MENU_LABEL_VIDEO_REFRESH_RATE_AUTO: + snprintf(s, len, + "Refresh Rate Auto.\n" + " \n" + "The accurate refresh rate of our monitor (Hz).\n" + "This is used to calculate audio input rate with \n" + "the formula: \n" + " \n" + "audio_input_rate = game input rate * display \n" + "refresh rate / game refresh rate\n" + " \n" + "If the implementation does not report any \n" + "values, NTSC defaults will be assumed for \n" + "compatibility.\n" + " \n" + "This value should stay close to 60Hz to avoid \n" + "large pitch changes. If your monitor does \n" + "not run at 60Hz, or something close to it, \n" + "disable VSync, and leave this at its default."); + break; + case MENU_LABEL_VIDEO_ROTATION: + snprintf(s, len, + "Forces a certain rotation \n" + "of the screen.\n" + " \n" + "The rotation is added to rotations which\n" + "the libretro core sets (see Video Allow\n" + "Rotate)."); + break; + case MENU_LABEL_VIDEO_SCALE: + snprintf(s, len, + "Fullscreen resolution.\n" + " \n" + "Resolution of 0 uses the \n" + "resolution of the environment.\n"); + break; + case MENU_LABEL_FASTFORWARD_RATIO: + snprintf(s, len, + "Fastforward ratio." + " \n" + "The maximum rate at which content will\n" + "be run when using fast forward.\n" + " \n" + " (E.g. 5.0 for 60 fps content => 300 fps \n" + "cap).\n" + " \n" + "RetroArch will go to sleep to ensure that \n" + "the maximum rate will not be exceeded.\n" + "Do not rely on this cap to be perfectly \n" + "accurate."); + break; + case MENU_LABEL_VIDEO_MONITOR_INDEX: + snprintf(s, len, + "Which monitor to prefer.\n" + " \n" + "0 (default) means no particular monitor \n" + "is preferred, 1 and up (1 being first \n" + "monitor), suggests RetroArch to use that \n" + "particular monitor."); + break; + case MENU_LABEL_VIDEO_CROP_OVERSCAN: + snprintf(s, len, + "Forces cropping of overscanned \n" + "frames.\n" + " \n" + "Exact behavior of this option is \n" + "core-implementation specific."); + break; + case MENU_LABEL_VIDEO_SCALE_INTEGER: + snprintf(s, len, + "Only scales video in integer \n" + "steps.\n" + " \n" + "The base size depends on system-reported \n" + "geometry and aspect ratio.\n" + " \n" + "If Force Aspect is not set, X/Y will be \n" + "integer scaled independently."); + break; + case MENU_LABEL_AUDIO_VOLUME: + snprintf(s, len, + "Audio volume, expressed in dB.\n" + " \n" + " 0 dB is normal volume. No gain will be applied.\n" + "Gain can be controlled in runtime with Input\n" + "Volume Up / Input Volume Down."); + break; + case MENU_LABEL_AUDIO_RATE_CONTROL_DELTA: + snprintf(s, len, + "Audio rate control.\n" + " \n" + "Setting this to 0 disables rate control.\n" + "Any other value controls audio rate control \n" + "delta.\n" + " \n" + "Defines how much input rate can be adjusted \n" + "dynamically.\n" + " \n" + " Input rate is defined as: \n" + " input rate * (1.0 +/- (rate control delta))"); + break; + case MENU_LABEL_AUDIO_MAX_TIMING_SKEW: + snprintf(s, len, + "Maximum audio timing skew.\n" + " \n" + "Defines the maximum change in input rate.\n" + "You may want to increase this to enable\n" + "very large changes in timing, for example\n" + "running PAL cores on NTSC displays, at the\n" + "cost of inaccurate audio pitch.\n" + " \n" + " Input rate is defined as: \n" + " input rate * (1.0 +/- (max timing skew))"); + break; + case MENU_LABEL_OVERLAY_NEXT: + snprintf(s, len, + "Toggles to next overlay.\n" + " \n" + "Wraps around."); + break; + case MENU_LABEL_LOG_VERBOSITY: + snprintf(s, len, + "Enable or disable verbosity level \n" + "of frontend."); + break; + case MENU_LABEL_VOLUME_UP: + snprintf(s, len, + "Increases audio volume."); + break; + case MENU_LABEL_VOLUME_DOWN: + snprintf(s, len, + "Decreases audio volume."); + break; + case MENU_LABEL_VIDEO_DISABLE_COMPOSITION: + snprintf(s, len, + "Forcibly disable composition.\n" + "Only valid on Windows Vista/7 for now."); + break; + case MENU_LABEL_PERFCNT_ENABLE: + snprintf(s, len, + "Enable or disable frontend \n" + "performance counters."); + break; + case MENU_LABEL_SYSTEM_DIRECTORY: + snprintf(s, len, + "System Directory. \n" + " \n" + "Sets the 'system' directory.\n" + "Cores can query for this\n" + "directory to load BIOSes, \n" + "system-specific configs, etc."); + break; + case MENU_LABEL_SAVESTATE_AUTO_SAVE: + snprintf(s, len, + "Automatically saves a savestate at the \n" + "end of RetroArch's lifetime.\n" + " \n" + "RetroArch will automatically load any savestate\n" + "with this path on startup if 'Auto Load State\n" + "is enabled."); + break; + case MENU_LABEL_VIDEO_THREADED: + snprintf(s, len, + "Use threaded video driver.\n" + " \n" + "Using this might improve performance at \n" + "possible cost of latency and more video \n" + "stuttering."); + break; + case MENU_LABEL_VIDEO_VSYNC: + snprintf(s, len, + "Video V-Sync.\n"); + break; + case MENU_LABEL_VIDEO_HARD_SYNC: + snprintf(s, len, + "Attempts to hard-synchronize \n" + "CPU and GPU.\n" + " \n" + "Can reduce latency at cost of \n" + "performance."); + break; + case MENU_LABEL_REWIND_GRANULARITY: + snprintf(s, len, + "Rewind granularity.\n" + " \n" + " When rewinding defined number of \n" + "frames, you can rewind several frames \n" + "at a time, increasing the rewinding \n" + "speed."); + break; + case MENU_LABEL_SCREENSHOT: + snprintf(s, len, + "Take screenshot."); + break; + case MENU_LABEL_VIDEO_FRAME_DELAY: + snprintf(s, len, + "Sets how many milliseconds to delay\n" + "after VSync before running the core.\n" + "\n" + "Can reduce latency at cost of\n" + "higher risk of stuttering.\n" + " \n" + "Maximum is 15."); + break; + case MENU_LABEL_VIDEO_HARD_SYNC_FRAMES: + snprintf(s, len, + "Sets how many frames CPU can \n" + "run ahead of GPU when using 'GPU \n" + "Hard Sync'.\n" + " \n" + "Maximum is 3.\n" + " \n" + " 0: Syncs to GPU immediately.\n" + " 1: Syncs to previous frame.\n" + " 2: Etc ..."); + break; + case MENU_LABEL_VIDEO_BLACK_FRAME_INSERTION: + snprintf(s, len, + "Inserts a black frame inbetween \n" + "frames.\n" + " \n" + "Useful for 120 Hz monitors who want to \n" + "play 60 Hz material with eliminated \n" + "ghosting.\n" + " \n" + "Video refresh rate should still be \n" + "configured as if it is a 60 Hz monitor \n" + "(divide refresh rate by 2)."); + break; + case MENU_LABEL_RGUI_SHOW_START_SCREEN: + snprintf(s, len, + "Show startup screen in menu.\n" + "Is automatically set to false when seen\n" + "for the first time.\n" + " \n" + "This is only updated in config if\n" + "'Save Configuration on Exit' is enabled.\n"); + break; + case MENU_LABEL_CORE_SPECIFIC_CONFIG: + snprintf(s, len, + "Load up a specific config file \n" + "based on the core being used.\n"); + break; + case MENU_LABEL_VIDEO_FULLSCREEN: + snprintf(s, len, "Toggles fullscreen."); + break; + case MENU_LABEL_BLOCK_SRAM_OVERWRITE: + snprintf(s, len, + "Block SRAM from being overwritten \n" + "when loading save states.\n" + " \n" + "Might potentially lead to buggy games."); + break; + case MENU_LABEL_PAUSE_NONACTIVE: + snprintf(s, len, + "Pause gameplay when window focus \n" + "is lost."); + break; + case MENU_LABEL_VIDEO_GPU_SCREENSHOT: + snprintf(s, len, + "Screenshots output of GPU shaded \n" + "material if available."); + break; + case MENU_LABEL_SCREENSHOT_DIRECTORY: + snprintf(s, len, + "Screenshot Directory. \n" + " \n" + "Directory to dump screenshots to." + ); + break; + case MENU_LABEL_VIDEO_SWAP_INTERVAL: + snprintf(s, len, + "VSync Swap Interval.\n" + " \n" + "Uses a custom swap interval for VSync. Set this \n" + "to effectively halve monitor refresh rate."); + break; + case MENU_LABEL_SAVEFILE_DIRECTORY: + snprintf(s, len, + "Savefile Directory. \n" + " \n" + "Save all save files (*.srm) to this \n" + "directory. This includes related files like \n" + ".bsv, .rt, .psrm, etc...\n" + " \n" + "This will be overridden by explicit command line\n" + "options."); + break; + case MENU_LABEL_SAVESTATE_DIRECTORY: + snprintf(s, len, + "Savestate Directory. \n" + " \n" + "Save all save states (*.state) to this \n" + "directory.\n" + " \n" + "This will be overridden by explicit command line\n" + "options."); + break; + case MENU_LABEL_ASSETS_DIRECTORY: + snprintf(s, len, + "Assets Directory. \n" + " \n" + " This location is queried by default when \n" + "menu interfaces try to look for loadable \n" + "assets, etc."); + break; + case MENU_LABEL_DYNAMIC_WALLPAPERS_DIRECTORY: + snprintf(s, len, + "Dynamic Wallpapers Directory. \n" + " \n" + " The place to store wallpapers that will \n" + "be loaded dynamically by the menu depending \n" + "on context."); + break; + case MENU_LABEL_SLOWMOTION_RATIO: + snprintf(s, len, + "Slowmotion ratio." + " \n" + "When slowmotion, content will slow\n" + "down by factor."); + break; + case MENU_LABEL_INPUT_AXIS_THRESHOLD: + snprintf(s, len, + "Defines axis threshold.\n" + " \n" + "How far an axis must be tilted to result\n" + "in a button press.\n" + " Possible values are [0.0, 1.0]."); + break; + case MENU_LABEL_INPUT_TURBO_PERIOD: + snprintf(s, len, + "Turbo period.\n" + " \n" + "Describes speed of which turbo-enabled\n" + "buttons toggle." + ); + break; + case MENU_LABEL_INPUT_AUTODETECT_ENABLE: + snprintf(s, len, + "Enable input auto-detection.\n" + " \n" + "Will attempt to auto-configure \n" + "joypads, Plug-and-Play style."); + break; + case MENU_LABEL_CAMERA_ALLOW: + snprintf(s, len, + "Allow or disallow camera access by \n" + "cores."); + break; + case MENU_LABEL_LOCATION_ALLOW: + snprintf(s, len, + "Allow or disallow location services \n" + "access by cores."); + break; + case MENU_LABEL_TURBO: + snprintf(s, len, + "Turbo enable.\n" + " \n" + "Holding the turbo while pressing another \n" + "button will let the button enter a turbo \n" + "mode where the button state is modulated \n" + "with a periodic signal. \n" + " \n" + "The modulation stops when the button \n" + "itself (not turbo button) is released."); + break; + case MENU_LABEL_OSK_ENABLE: + snprintf(s, len, + "Enable/disable on-screen keyboard."); + break; + case MENU_LABEL_AUDIO_MUTE: + snprintf(s, len, + "Mute/unmute audio."); + break; + case MENU_LABEL_REWIND: + snprintf(s, len, + "Hold button down to rewind.\n" + " \n" + "Rewind must be enabled."); + break; + case MENU_LABEL_EXIT_EMULATOR: + snprintf(s, len, + "Key to exit RetroArch cleanly." +#if !defined(RARCH_MOBILE) && !defined(RARCH_CONSOLE) + "\nKilling it in any hard way (SIGKILL, \n" + "etc) will terminate without saving\n" + "RAM, etc. On Unix-likes,\n" + "SIGINT/SIGTERM allows\n" + "a clean deinitialization." +#endif + ); + break; + case MENU_LABEL_LOAD_STATE: + snprintf(s, len, + "Loads state."); + break; + case MENU_LABEL_SAVE_STATE: + snprintf(s, len, + "Saves state."); + break; + case MENU_LABEL_NETPLAY_FLIP_PLAYERS: + snprintf(s, len, + "Netplay flip users."); + break; + case MENU_LABEL_CHEAT_INDEX_PLUS: + snprintf(s, len, + "Increment cheat index.\n"); + break; + case MENU_LABEL_CHEAT_INDEX_MINUS: + snprintf(s, len, + "Decrement cheat index.\n"); + break; + case MENU_LABEL_SHADER_PREV: + snprintf(s, len, + "Applies previous shader in directory."); + break; + case MENU_LABEL_SHADER_NEXT: + snprintf(s, len, + "Applies next shader in directory."); + break; + case MENU_LABEL_RESET: + snprintf(s, len, + "Reset the content.\n"); + break; + case MENU_LABEL_PAUSE_TOGGLE: + snprintf(s, len, + "Toggle between paused and non-paused state."); + break; + case MENU_LABEL_CHEAT_TOGGLE: + snprintf(s, len, + "Toggle cheat index.\n"); + break; + case MENU_LABEL_HOLD_FAST_FORWARD: + snprintf(s, len, + "Hold for fast-forward. Releasing button \n" + "disables fast-forward."); + break; + case MENU_LABEL_SLOWMOTION: + snprintf(s, len, + "Hold for slowmotion."); + break; + case MENU_LABEL_FRAME_ADVANCE: + snprintf(s, len, + "Frame advance when content is paused."); + break; + case MENU_LABEL_MOVIE_RECORD_TOGGLE: + snprintf(s, len, + "Toggle between recording and not."); + break; + case MENU_LABEL_L_X_PLUS: + case MENU_LABEL_L_X_MINUS: + case MENU_LABEL_L_Y_PLUS: + case MENU_LABEL_L_Y_MINUS: + case MENU_LABEL_R_X_PLUS: + case MENU_LABEL_R_X_MINUS: + case MENU_LABEL_R_Y_PLUS: + case MENU_LABEL_R_Y_MINUS: + snprintf(s, len, + "Axis for analog stick (DualShock-esque).\n" + " \n" + "Bound as usual, however, if a real analog \n" + "axis is bound, it can be read as a true analog.\n" + " \n" + "Positive X axis is right. \n" + "Positive Y axis is down."); + break; + case MENU_LABEL_VALUE_WHAT_IS_A_CORE_DESC: + snprintf(s, len, + "RetroArch da solo non fa nulla. \n" + " \n" + "Per farlo funzionare, hai bisogno di \n" + "caricare un programma su di esso. \n" + "\n" + "Noi chiamiamo tale programma 'Libretro core', \n" + "o abbreviato 'core'. \n" + " \n" + "Per caricare un core, selezionane uno da\n" + "'Carica Core'.\n" + " \n" +#ifdef HAVE_NETWORKING + "Puoi ottenere i core in diversi modi: \n" + "* Scaricali andando su\n" + "'%s' -> '%s'.\n" + "* Manualmente trasferiscili su\n" + "'%s'.", + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONLINE_UPDATER), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_UPDATER_LIST), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) +#else + "Puoi ottenere i core da\n" + "manualmente trasferendoli su\n" + "'%s'.", + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) +#endif + ); + break; + case MENU_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD_DESC: + snprintf(s, len, + "Puoi cambiare lo schema del gamepad virtuale\n" + "andando su '%s' \n" + "-> '%s'." + " \n" + "Da lì puoi cambiare lo schema,\n" + "la dimensione e l'opacità dei tasti, ecc.\n" + " \n" + "NOTA: Come predefinito, gli schemi del gamepad virtuale\n" + "sono nascosti nel menù.\n" + "Se vorresti cambiare questa impostazione,\n" + "puoi impostare '%s' a spento/OFF.", + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OVERLAY_SETTINGS), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_HIDE_IN_MENU) + ); + break; + default: + if (s[0] == '\0') + strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); + return -1; + } + + return 0; +} + const char *msg_hash_to_str_it(enum msg_hash_enums msg) { switch (msg) diff --git a/intl/msg_hash_nl.c b/intl/msg_hash_nl.c index 4ba1436641..26531efea7 100644 --- a/intl/msg_hash_nl.c +++ b/intl/msg_hash_nl.c @@ -19,6 +19,22 @@ #include "../msg_hash.h" +int menu_hash_get_help_nl(uint32_t hash, char *s, size_t len) +{ + int ret = 0; + + switch (hash) + { + case 0: + default: + strlcpy(s, "Geen informatie beschikbaar.", len); + ret = -1; + break; + } + + return ret; +} + const char *msg_hash_to_str_nl(enum msg_hash_enums msg) { switch (msg) diff --git a/intl/msg_hash_pl.c b/intl/msg_hash_pl.c index 60943e8c20..76ce0909e1 100644 --- a/intl/msg_hash_pl.c +++ b/intl/msg_hash_pl.c @@ -24,6 +24,21 @@ * (e.g. German "Umlauts" and Portugese diacritics). */ +int menu_hash_get_help_pl(uint32_t hash, char *s, size_t len) +{ + int ret = 0; + + switch (hash) + { + case 0: + default: + ret = -1; + break; + } + + return ret; +} + const char *msg_hash_to_str_pl(enum msg_hash_enums msg) { switch (msg) diff --git a/intl/msg_hash_pt.c b/intl/msg_hash_pt.c index 217a5f55d3..852274df84 100644 --- a/intl/msg_hash_pt.c +++ b/intl/msg_hash_pt.c @@ -31,6 +31,969 @@ /* DO NOT REMOVE THIS. If it causes build failure, it's because you saved the file as UTF-8. Read the above comment. */ extern const char force_iso_8859_1[sizeof("áÁâãçéêíÍóõú")==12+1 ? 1 : -1]; +int menu_hash_get_help_pt(uint32_t hash, char *s, size_t len) +{ + uint32_t driver_hash = 0; + settings_t *settings = config_get_ptr(); + + /* If this one throws errors, stop sledgehammering square pegs into round holes and */ + /* READ THE COMMENTS at the top of the file. */ + (void)sizeof(force_iso_8859_1); + + switch (hash) + { + case MENU_LABEL_INPUT_DRIVER: + if (settings) + driver_hash = msg_hash_calculate(settings->input.driver); + + switch (driver_hash) + { + case MENU_LABEL_INPUT_DRIVER_UDEV: + snprintf(s, len, + "Driver de entrada udev. \n" + " \n" + "Esse driver funciona sem o X. \n" + " \n" + "Ele usa a recente API de joypads \n" + "evdev para supporte a joystick. \n" + "Suporta Hot-Swap e force feedback \n" + "(se suportado pelo dispositivo). \n" + " \n" + "O driver lê os eventos evdev para suporte a \n" + "teclado. Suporta também callback de teclado, \n" + "mouses e touchpads. \n" + " \n" + "Em geral, na maioria das distribuições, os nós \n" + "/dev/input são root-only (modo 600). Mas você pode \n" + "definir uma regra udev para dar acesso a non-roots." + ); + break; + case MENU_LABEL_INPUT_DRIVER_LINUXRAW: + snprintf(s, len, + "Driver de Entrada linuxraw. \n" + " \n" + "Esse driver requer um TTY ativo. Eventos de \n" + "teclado são lidos diretamente do TTY, tornando-o \n" + "simples, mas não tão flexível quanto o udev. \n" "Mouses, etc, não são suportados. \n" + " \n" + "Esse driver usa a antiga API de joysticks \n" + "(/dev/input/js*)."); + break; + default: + snprintf(s, len, + "Driver de Entrada.\n" + " \n" + "Dependendo do driver de vídeo, pode ser necessário \n" + "forçar um driver de entrada diferente."); + break; + } + break; + case MENU_LABEL_LOAD_CONTENT: + snprintf(s, len, + "Carregar Conteúdo. \n" + "Busca conteúdo. \n" + " \n" + "Para carregar conteúdo, você precisa de \n" + "um core libretro para usar, e um arquivo \n" + "de conteúdo. \n" + " \n" + "Para controlar onde o menu começa a \n" + "buscar conteúdo, defina o Diretório \n" + "de Navegação. Se não estiver definido, \n" + "o Retroarch começará no diretório raiz. \n" + " \n" + "O navegador vai filtrar pelas extensões \n" + "do mais recente core definido em 'Core', \n" + "e o usará quando o conteúdo estiver \n" + "carregado." + ); + break; + case MENU_LABEL_CORE_LIST: + snprintf(s, len, + "Carregar Core. \n" + " \n" + "Busca uma implementação de um core \n" + "libretro. Onde a busca inicia depende \n" + "do caminho do seu Diretório de Cores. \n" + "Se não definido, começará no raiz. \n" + " \n" + "Se o Diretório de Cores estiver definido, \n" + "o menu o usará como pasta inicial. Se for um \n" + "caminho completo, ele começará na pasta onde \n" + "o arquivo estiver."); + break; + case MENU_LABEL_LOAD_CONTENT_HISTORY: + snprintf(s, len, + "Carregando conteúdo do histórico. \n" + " \n" + "Ao carregar conteúdos, suas combinações com \n" + "cores são salvas no histórico. \n" + " \n" + "O histórico é salvo em um arquivo no mesmo \n" + "diretório do arquivo de configuração. Se nenhuma \n" + "configuração tiver sido carregada, o histórico \n" + "não será salvo ou carregado e não vai existir no \n" + "menu principal." + ); + break; + case MENU_LABEL_VIDEO_DRIVER: + if (settings) + driver_hash = msg_hash_calculate(settings->video.driver); + + switch (driver_hash) + { + case MENU_LABEL_VIDEO_DRIVER_GL: + snprintf(s, len, + "Driver de Vídeo OpenGL. \n" + " \n" + "Esse driver permite o uso de cores libretro GL \n" + "em adição às implementações de cores de \n" + "renderização por software.\n" + " \n" + "O desempenho das implementações dos cores de\n" + "renderização por software e libretro GL \n" + "depende do driver GL instalado em sua \n" + "placa de vídeo."); + break; + case MENU_LABEL_VIDEO_DRIVER_SDL2: + snprintf(s, len, + "Driver de Vídeo SDL 2.\n" + " \n" + "Esse é um driver de vídeo SDL 2 de \n" + "renderização por software.\n" + " \n" + "O desempenho das implementações dos cores de \n" + "renderização por software depende da \n" + "implementação SDL de sua plataforma."); + break; + case MENU_LABEL_VIDEO_DRIVER_SDL1: + snprintf(s, len, + "Driver de Vídeo SDL.\n" + " \n" + "Esse é um driver de vídeo SDL 1.2 de \n" + "renderização por software.\n" + " \n" + "O desemprenho é considerado subótimo. \n" + "Considere seu uso apenas em último caso."); + break; + case MENU_LABEL_VIDEO_DRIVER_D3D: + snprintf(s, len, + "Driver de Vídeo Direct3D. \n" + " \n" + "O desempenho das implementações dos cores de\n" + "renderização por software depende do driver \n" + "D3D instalado em sua placa de vídeo."); + break; + case MENU_LABEL_VIDEO_DRIVER_EXYNOS: + snprintf(s, len, + "Driver de Vídeo Exynos-G2D. \n" + " \n" + "Esse é um driver de vídeo Exynos de baixo nível. \n" + "Usa o bloco G2D do SoC Samsung Exynos \n" + "para operações de blit. \n" + " \n" + "O desempenho para cores de renderização por \n" + "software deve ser ótimo."); + break; + case MENU_LABEL_VIDEO_DRIVER_SUNXI: + snprintf(s, len, + "Driver de Vídeo Sunxi-G2D. \n" + " \n" + "Esse é um driver de vídeo Sunxi de baixo nível. \n" + "Usa o bloco G2D dos SoCs Allwinner."); + break; + default: + snprintf(s, len, + "Driver de Vídeo em uso."); + break; + } + break; + case MENU_LABEL_AUDIO_DSP_PLUGIN: + snprintf(s, len, + "Plugin de DSP de Áudio.\n" + "Processa áudio antes de ser enviado ao \n" + "driver." + ); + break; + case MENU_LABEL_AUDIO_RESAMPLER_DRIVER: + if (settings) + driver_hash = msg_hash_calculate(settings->audio.resampler); + + switch (driver_hash) + { + case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_SINC: + snprintf(s, len, + "Implementação Windowed SINC."); + break; + case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_CC: + snprintf(s, len, + "Implementação Convoluted Cosine."); + break; + } + break; + case MENU_LABEL_VIDEO_SHADER_PRESET: + snprintf(s, len, + "Carregar Predefinições de Shader. \n" + " \n" + " Carregar predefinições em " +#ifdef HAVE_CG + "Cg" +#endif +#ifdef HAVE_GLSL +#ifdef HAVE_CG + "/" +#endif + "GLSL" +#endif +#ifdef HAVE_HLSL +#if defined(HAVE_CG) || defined(HAVE_HLSL) + "/" +#endif + "HLSL" +#endif + " diretamente. \n" + "O menu de shaders é atualizado de acordo. \n" + " \n" + "Se o CGP usar métodos de interpolação complexos, \n" + "(fator de escala diferente para X e Y) o fator \n" + "de escala mostrado no menu poderá não ser \n" + "correto." + ); + break; + case MENU_LABEL_VIDEO_SHADER_SCALE_PASS: + snprintf(s, len, + "Escala para este passo. \n" + " \n" + "O fator de escala se acumula, i.e. 2x \n" + "para o primeiro passo e 2x para o segundo \n" + "vai lhe fornecer uma escala total de 4x. \n" + " \n" + "Se houver um fator de escala no último \n" + "passo, o resultado será esticado na tela \n" + "com o filtro especificado em 'Filtro \n" + "Padrão'. \n" + " \n" + "Se 'Tanto faz' estiver definido, a escala \n" + "de 1x ou o esticamento para tela cheia serão \n" + "usados dependendo se o primeiro foi ou não \n" + "definido no último passo." + ); + break; + case MENU_LABEL_VIDEO_SHADER_NUM_PASSES: + snprintf(s, len, + "Número de Shaders. \n" + " \n" + "O RetroArch permite que você combine vários \n" + "shaders com número arbitrário de passos, filtros \n" + "de hardware e fatores de escala personalizados. \n" + " \n" + "Essa opção especifica o número de passos a usar. \n" + "Se for definido como 0 e usada a opção Aplicar \n" + "Alterações de Shaders, será usado um shader vazio. \n" + " \n" + "A opção Filtro Padrão irá afetar o filtro \n" + "de esticamento."); + break; + case MENU_LABEL_VIDEO_SHADER_PARAMETERS: + snprintf(s, len, + "Parâmetros de Shaders. \n" + " \n" + "Modifica o shader em uso diretamente. Não será \n" + "salvo no arquivo de predefinições CGP/GLSLP."); + break; + case MENU_LABEL_VIDEO_SHADER_PRESET_PARAMETERS: + snprintf(s, len, + "Parâmetros de Predefinições de Shader. \n" + " \n" + "Modifica as predefinições de shader em uso no menu." + ); + break; + case MENU_LABEL_VIDEO_SHADER_PASS: + snprintf(s, len, + "Caminho do shader. \n" + " \n" + "Todos os shaders devem ser do mesmo \n" + "tipo (i.e. CG, GLSL ou HLSL). \n" + " \n" + "Defina o Diretório de Shaders para indicar \n" + "onde o buscador começa a procurar pelos \n" + "shaders." + ); + break; + case MENU_LABEL_CONFIG_SAVE_ON_EXIT: + snprintf(s, len, + "Salva configuração ao sair. Útil para\n" + "o menu, pois as definições podem ser\n" + "modificadas. Sobrescreve a configuração.\n" + " \n" + "#includes e comentários não são \n" + "preservados. \n" + " \n" + "Por design, o arquivo de configuração \n" + "é considerado imutável, pois ele é \n" + "provavelmente mantido pelo usuário, \n" + "e não deve ser sobrescrito sem o \n" + "seu conhecimento." +#if defined(RARCH_CONSOLE) || defined(RARCH_MOBILE) + "\nPorém, isso não funciona assim nos \n" + "consoles, pois abrir o arquivo de \n" + "configuração manualmente não é \n" + "realmente uma opção." +#endif + ); + break; + case MENU_LABEL_VIDEO_SHADER_FILTER_PASS: + snprintf(s, len, + "Filtro de hardware para este passo. \n" + " \n" + "Se 'Tanto faz' estiver definido, o 'Filtro \n" + "Padrão' será usado." + ); + break; + case MENU_LABEL_AUTOSAVE_INTERVAL: + snprintf(s, len, + "Salva automaticamente a SRAM \n" + "em intervalos regulares.\n" + " \n" + "Está desativado por padrão. O intervalo é \n" + "medido em segundos. \n" + " \n" + "Um valor de 0 desativa o salvamento \n" + "automático."); + break; + case MENU_LABEL_INPUT_BIND_DEVICE_TYPE: + snprintf(s, len, + "Tipo de Dispositivo de Entrada. \n" + " \n" + "Escolhe o dispositivo a usar. Isso é \n" + "relevante para o core libretro." + ); + break; + case MENU_LABEL_LIBRETRO_LOG_LEVEL: + snprintf(s, len, + "Define o nível de registro para os cores \n" + "(GET_LOG_INTERFACE). \n" + " \n" + " Se o nível de registro de um core \n" + " libretro estiver abaixo de libretro_log, \n" + " esse será ignorado.\n" + " \n" + " Registros DEBUG são sempre ignorados a menos \n" + " que o modo prolixo seja ativado (--verbose).\n" + " \n" + " DEBUG = 0\n" + " INFO = 1\n" + " WARN = 2\n" + " ERROR = 3" + ); + break; + case MENU_LABEL_STATE_SLOT_INCREASE: + case MENU_LABEL_STATE_SLOT_DECREASE: + snprintf(s, len, + "Slot de Savestates.\n" + " \n" + " Com o slot definido em 0, o nome do Savestate \n" + " será *.state (ou o que estiver definido em commandline).\n" + "Se diferente de 0, o nome será (caminho)(d), \n" + "em que (d) é o número do slot."); + break; + case MENU_LABEL_SHADER_APPLY_CHANGES: + snprintf(s, len, + "Aplicar Alterações de Shaders. \n" + " \n" + "Após alterar definições de shaders, use-o para \n" + "aplicar as mudanças. \n" + " \n" + "Mudar definições de shaders é uma operação \n" + "computacionalmente cara e deve ser \n" + "realizada explicitamente. \n" + " \n" + "Quando se aplicam shaders, as definições do menu \n" + "de shaders são salvas em um arquivo temporário \n" + "(menu.cgp ou menu.glslp) e carregadas. O arquivo \n" + "persiste ao fechar o RetroArch. Ele é salvo \n" + "no Diretório de Shaders." + ); + break; + case MENU_LABEL_INPUT_BIND_DEVICE_ID: + snprintf(s, len, + "Dispositivo de Entrada. \n" + " \n" + "Escolhe um gamepad para o usuário N. \n" + "O nome do pad está disponível." + ); + break; + case MENU_LABEL_MENU_TOGGLE: + snprintf(s, len, + "Alterna menu."); + break; + case MENU_LABEL_GRAB_MOUSE_TOGGLE: + snprintf(s, len, + "Alterna uso de mouse.\n" + " \n" + "Quando o mouse é usado, RetroArch o esconde e \n" + "mantém o seu ponteiro dentro da janela para \n" + "permitir que a entrada relativa do mouse \n" + "funcione melhor."); + break; + case MENU_LABEL_DISK_NEXT: + snprintf(s, len, + "Circula por imagens de discos. Usar \n" + "após ejetar. \n" + " \n" + " Finaliza ao usar ejetar novamente."); + break; + case MENU_LABEL_VIDEO_FILTER: +#ifdef HAVE_FILTERS_BUILTIN + snprintf(s, len, + "Filtro de vídeo baseado em CPU."); +#else + snprintf(s, len, + "Filtro de vídeo baseado em CPU.\n" + " \n" + "Caminho para uma biblioteca dinâmica."); +#endif + break; + case MENU_LABEL_AUDIO_DEVICE: + snprintf(s, len, + "Sobrepõe-se ao dispositivo de áudio padrão \n" + "que está em uso.\n" + "É dependente do driver. \n" +#ifdef HAVE_ALSA + " \n" + "ALSA precisa de um dispositivo PCM." +#endif +#ifdef HAVE_OSS + " \n" + "OSS precisa de um caminho (ex.: /dev/dsp)." +#endif +#ifdef HAVE_JACK + " \n" + "JACK precisa de portas (ex.: system:playback1\n" + ",system:playback_2)." +#endif +#ifdef HAVE_RSOUND + " \n" + "RSound precisa de um endereço IP para \n" + "servidor RSound." +#endif + ); + break; + case MENU_LABEL_DISK_EJECT_TOGGLE: + snprintf(s, len, + "Alterna ejeção para discos.\n" + " \n" + "Usado para conteúdos multidiscos."); + break; + case MENU_LABEL_ENABLE_HOTKEY: + snprintf(s, len, + "Ativar outras hotkeys.\n" + " \n" + " Se esta hotkey é usada por teclado, joybutton \n" + "ou joyaxis, todas as outras hotkeys serão \n" + "desativadas a menos que esta hotkey esteja sendo \n" + "usada ao mesmo tempo. \n" + " \n" + "Isso é útil para implementações RETRO_KEYBOARD que \n" + "consultam uma grande área do teclado, cujo caminho \n" + "deve estar livre das hotkeys."); + break; + case MENU_LABEL_REWIND_ENABLE: + snprintf(s, len, + "Ativa retrocesso.\n" + " \n" + "Essa opção causa uma perda de desempenho, \n" + "por isso está desativada por padrão."); + break; + case MENU_LABEL_LIBRETRO_DIR_PATH: + snprintf(s, len, + "Diretórios de Cores. \n" + " \n" + "Um diretório onde são buscadas as \n" + "implementações de cores libretro."); + break; + case MENU_LABEL_VIDEO_REFRESH_RATE_AUTO: + { + /* Work around C89 limitations */ + char u[501]; + char t[501]; + snprintf(u, sizeof(u), + "Taxa de Atualização Automática.\n" + " \n" + "A taxa de atualização exata de nosso monitor (Hz).\n" + "É usada para calcular a taxa de entrada de áudio \n" + "com a fórmula: \n" + " \n" + "audio_input_rate = game input rate * display \n" + "refresh rate / game refresh rate\n" + " \n"); + snprintf(t, sizeof(t), + "Se a implementação não informar valores, \n" + "valores NTSC serão assumidos por questão de \n" + "compatibilidade.\n" + " \n" + "Esse valor deve ficar próximo de 60Hz para \n" + "evitar grande mudanças de pitch. Se o monitor \n" + "não rodar a 60Hz, ou algo próximo a isso, desative\n" + "o VSync, e deixe-o com valores padrão."); + strlcat(s, u, len); + strlcat(s, t, len); + } + break; + case MENU_LABEL_VIDEO_ROTATION: + snprintf(s, len, + "Força uma certa rotação da tela. \n" + " \n" + "A rotação é adicionada a outras definidas\n" + "por conjuntos de cores (veja Permitir\n" + "Rotação de Vídeo)."); + break; + case MENU_LABEL_VIDEO_SCALE: + snprintf(s, len, + "Resolução de tela cheia.\n" + " \n" + "Resolução 0 usa a resolução \n" + "do ambiente.\n"); + break; + case MENU_LABEL_FASTFORWARD_RATIO: + snprintf(s, len, + "Taxa de Avanço Rápido." + " \n" + "A taxa máxima na qual o conteúdo será\n" + "executado ao se usar o Avanço Rápido.\n" + " \n" + " (Ex.: 5.0 para conteúdo 60 fps => 300 fps \n" + "máximo).\n" + " \n" + "RetroArch entra em modo sleep para assegurar \n" + "que a taxa máxima não será excedida.\n" + "Não confie que esse teto tenha exatidão \n" + "perfeita."); + break; + case MENU_LABEL_VIDEO_MONITOR_INDEX: + snprintf(s, len, + "Preferência de monitor.\n" + " \n" + "0 (padrão) significa nenhum monitor é \n" + "preferido, 1 e demais (1 é o primeiro \n" + "monitor), sugere ao RetroArch usar esse \n" + "monitor em particular."); + break; + case MENU_LABEL_VIDEO_CROP_OVERSCAN: + snprintf(s, len, + "Força o descarte de quadros overscanned. \n" + " \n" + "O comportamento exato dessa opção é \n" + "específico da implementação do core."); + break; + case MENU_LABEL_VIDEO_SCALE_INTEGER: + snprintf(s, len, + "Só interpola vídeo em escalas múltiplas \n" + "inteiras da resolução nativa.\n" + " \n" + "O tamanho base depende da geometria e da \n" + "relação de aspecto informadas pelo sistema.\n" + " \n" + "Se Forçar Aspecto não estiver definida, X/Y \n" + "serão escalonados em inteiros independentemente."); + break; + case MENU_LABEL_AUDIO_VOLUME: + snprintf(s, len, + "Volume de Áudio, em dB.\n" + " \n" + " 0 dB é o volume normal. Nenhum ganho aplicado.\n" + "O ganho pode ser controlado em execução com \n" + "Aumentar Volume / Baixar Volume."); + break; + case MENU_LABEL_AUDIO_RATE_CONTROL_DELTA: + snprintf(s, len, + "Controle de taxa de áudio.\n" + " \n" + "Definindo como 0 desativa o controle de taxa.\n" + "Outros valores controlam a variação da taxa \n" + "de áudio.\n" + " \n" + "Define quanto de taxa de entrada pode ser \n" + "regulada dinamicamente.\n" + " \n" + " Taxa de entrada é definida como: \n" + " input rate * (1.0 +/- (rate control delta))"); + break; + case MENU_LABEL_AUDIO_MAX_TIMING_SKEW: + snprintf(s, len, + "Distorção de áudio máxima.\n" + " \n" + "Define a máxima variação da taxa de entrada.\n" + "Você pode querer aumentá-la para obter grandes\n" + "variações no compasso, por exemplo, ao rodar\n" + "cores PAL em telas NTSC, ao custo de um pitch\n" + "de áudio inexato.\n" + " \n" + " A taxa de entrada é definida como: \n" + " input rate * (1.0 +/- (max timing skew))"); + break; + case MENU_LABEL_OVERLAY_NEXT: + snprintf(s, len, + "Alterna para o próximo overlay.\n" + " \n" + "Navegação circular."); + break; + case MENU_LABEL_LOG_VERBOSITY: + snprintf(s, len, + "Ativa ou desativa nível de prolixidade \n" + "do frontend."); + break; + case MENU_LABEL_VOLUME_UP: + snprintf(s, len, + "Aumenta o volume de áudio."); + break; + case MENU_LABEL_VOLUME_DOWN: + snprintf(s, len, + "Baixa o volume de áudio."); + break; + case MENU_LABEL_VIDEO_DISABLE_COMPOSITION: + snprintf(s, len, + "Desativa composition à força.\n" + "Válido somente para Windows Vista/7 atualmente."); + break; + case MENU_LABEL_PERFCNT_ENABLE: + snprintf(s, len, + "Ativa ou desativa contadores de desempenho \n" + "do frontend."); + break; + case MENU_LABEL_SYSTEM_DIRECTORY: + snprintf(s, len, + "Diretório system. \n" + " \n" + "Define o diretório 'system'.\n" + "Cores podem consultar esse diretório\n" + "para carregar BIOS, configurações\n" + "específicas de sistemas, etc."); + break; + case MENU_LABEL_SAVESTATE_AUTO_SAVE: + snprintf(s, len, + "Automaticamente salva um Savestate ao fechar \n" + "o RetroArch.\n" + " \n" + "RetroArch carregará automaticamente qualquer\n" + "Savestate com esse caminho ao iniciar se 'Carregar\n" + "Savestate Automaticamente' estiver ativado."); + break; + case MENU_LABEL_VIDEO_THREADED: + snprintf(s, len, + "Usa driver de vídeo em thread.\n" + " \n" + "Usando isso pode melhorar o desempenho ao \n" + "possível custo de latência e mais engasgos \n" + "de vídeo."); + break; + case MENU_LABEL_VIDEO_VSYNC: + snprintf(s, len, + "Sincronismo Vertical de vídeo.\n"); + break; + case MENU_LABEL_VIDEO_HARD_SYNC: + snprintf(s, len, + "Tenta sincronizar CPU com GPU via \n" + "hardware.\n" + " \n" + "Pode reduzir a latência ao custo de \n" + "desempenho."); + break; + case MENU_LABEL_REWIND_GRANULARITY: + snprintf(s, len, + "Granularidade do retrocesso.\n" + " \n" + " Ao retroceder um número definido de \n" + "quadros, você pode retroceder vários \n" + "quadros por vez, aumentando a velocidade \n" + "de retrocesso."); + break; + case MENU_LABEL_SCREENSHOT: + snprintf(s, len, + "Tira uma foto da tela."); + break; + case MENU_LABEL_VIDEO_FRAME_DELAY: + snprintf(s, len, + "Define quantos milissegundos retardar \n" + "após o VSync antes de executar o core.\n" + "\n" + "Pode reduzir a latência ao custo de\n" + "um maior risco de engasgo de vídeo.\n" + " \n" + "O valor máximo é 15."); + break; + case MENU_LABEL_VIDEO_HARD_SYNC_FRAMES: + snprintf(s, len, + "Define quantos quadros a CPU pode rodar \n" + "adiante da GPU com a opção 'Sincronismo \n" + "de GPU via Hardware' ativada.\n" + " \n" + "O valor máximo é 3.\n" + " \n" + " 0: Sincroniza com GPU de imediato.\n" + " 1: Sincroniza com quadro anterior.\n" + " 2: Etc ..."); + break; + case MENU_LABEL_VIDEO_BLACK_FRAME_INSERTION: + snprintf(s, len, + "Insere um quadro preto entre quadros. \n" + " \n" + "Útil para monitores de 120 Hz ao rodar \n" + "material de 60 Hz com eliminação do efeito \n" + "'ghosting'.\n" + " \n" + "A taxa de atualização de vídeo deve ainda \n" + "ser configurada como se fosse um monitor de \n" + "60 Hz (divida a taxa de atualização por 2)."); + break; + case MENU_LABEL_RGUI_SHOW_START_SCREEN: + snprintf(s, len, + "Mostra a tela inicial no menu.\n" + "É definida automaticamente como falso quando\n" + "vista pela primeira vez.\n" + " \n" + "É atualizada na configuração apenas quando a\n" + "opção 'Salvar Configuração ao Sair' está ativada.\n"); + break; + case MENU_LABEL_CORE_SPECIFIC_CONFIG: + snprintf(s, len, + "Carrega uma configuração específica baseada \n" + "no core que está sendo usado.\n"); + break; + case MENU_LABEL_VIDEO_FULLSCREEN: + snprintf(s, len, "Alterna tela cheia."); + break; + case MENU_LABEL_BLOCK_SRAM_OVERWRITE: + snprintf(s, len, + "Previne SRAM de ser sobrescrita ao \n" + "carregar Savestates.\n" + " \n" + "Pode potencialmente levar a jogos bugados."); + break; + case MENU_LABEL_PAUSE_NONACTIVE: + snprintf(s, len, + "Pausa a jogatina quando o foco da janela \n" + "é perdido."); + break; + case MENU_LABEL_VIDEO_GPU_SCREENSHOT: + snprintf(s, len, + "Captura material gráfico de saída da \n" + "GPU se estiver disponível."); + break; + case MENU_LABEL_SCREENSHOT_DIRECTORY: + snprintf(s, len, + "Diretório de Capturas de Tela. \n" + " \n" + "Diretório para guardar as capturas de tela." + ); + break; + case MENU_LABEL_VIDEO_SWAP_INTERVAL: + snprintf(s, len, + "Intervalo de Troca de VSync.\n" + " \n" + "Usa um intervalo de troca personalizado. \n" + "Use-e para reduzir à metade a taxa de \n" + "atualização do monitor."); + break; + case MENU_LABEL_SAVEFILE_DIRECTORY: + snprintf(s, len, + "Diretório de Saves. \n" + " \n" + "Salva todos os arquivos de save (*.srm) nesse \n" + "diretório. Isso inclui arquivos relacionados \n" + "como .bsv, .rt, .psrm, etc...\n" + " \n" + "Pode ser sobreposto por opções explícitas de\n" + "linha de comando."); + break; + case MENU_LABEL_SAVESTATE_DIRECTORY: + snprintf(s, len, + "Diretório de Savestates. \n" + " \n" + "Salva todos os Savestates (*.state) nesse \n" + "diretório.\n" + " \n" + "Pode ser sobreposto por opções explícitas de\n" + "linha de comando."); + break; + case MENU_LABEL_ASSETS_DIRECTORY: + snprintf(s, len, + "Diretório de Recursos (Assets). \n" + " \n" + " Essa localização é consultada quando se \n" + "tenta buscar pelo menu recursos (assets) \n" + "carregáveis, etc."); + break; + case MENU_LABEL_DYNAMIC_WALLPAPERS_DIRECTORY: + snprintf(s, len, + "Diretório de Papéis de Parede Dinâmicos. \n" + " \n" + " O lugar para armazenar papéis de parede que \n" + "serão carregados dinamicamente pelo menu \n" + "dependendo do contexto."); + break; + case MENU_LABEL_SLOWMOTION_RATIO: + snprintf(s, len, + "Taxa de câmera lenta." + " \n" + "Quando ativado, o conteúdo rodará em velocidade\n" + "reduzida por um fator."); + break; + case MENU_LABEL_INPUT_AXIS_THRESHOLD: + snprintf(s, len, + "Define o limiar de eixo.\n" + " \n" + "O quanto deve ser torcido um eixo para\n" + "resultar em um botão pressionado.\n" + " Valores possíveis são [0.0, 1.0]."); + break; + case MENU_LABEL_INPUT_TURBO_PERIOD: + snprintf(s, len, + "Período de turbo.\n" + " \n" + "Descreve a velocidade na qual se alternam\n" + "os botões com turbo ativado." + ); + break; + case MENU_LABEL_INPUT_AUTODETECT_ENABLE: + snprintf(s, len, + "Ativa autodetecção de entrada.\n" + " \n" + "Tentará autoconfigurar joypads \n" + "em um estilo Plug-and-Play."); + break; + case MENU_LABEL_CAMERA_ALLOW: + snprintf(s, len, + "Autorizar ou desautorizar o acesso da câmera \n" + "pelos cores."); + break; + case MENU_LABEL_LOCATION_ALLOW: + snprintf(s, len, + "Autorizar ou desautorizar o acesso de \n" + "serviços de localização pelos cores."); + break; + case MENU_LABEL_TURBO: + snprintf(s, len, + "Ativar turbo.\n" + " \n" + "Segurando o turbo enquanto se pressiona outro \n" + "botão permitirá que o botão entre em modo \n" + "turbo em que o seu estado será modulado com \n" + "um sinal periódico. \n" + " \n" + "A modulação pára quando o próprio botão \n" + "(não é o botão de turbo) é solto."); + break; + case MENU_LABEL_OSK_ENABLE: + snprintf(s, len, + "Ativar/desativar teclado na tela."); + break; + case MENU_LABEL_AUDIO_MUTE: + snprintf(s, len, + "Ligar/desligar áudio."); + break; + case MENU_LABEL_REWIND: + snprintf(s, len, + "Segure o botão para retroceder.\n" + " \n" + "Retrocesso deve estar ativado."); + break; + case MENU_LABEL_EXIT_EMULATOR: + snprintf(s, len, + "Tecla para sair corretamente do RetroArch." +#if !defined(RARCH_MOBILE) && !defined(RARCH_CONSOLE) + "\nFechando-o de outra forma mais agressiva \n" + "(SIGKILL, etc) sairá sem salvar RAM, etc.\n" + "Em sistemas baseados em Unix,\n" + "SIGINT/SIGTERM permite um\n" + "fechamento correto." +#endif + ); + break; + case MENU_LABEL_LOAD_STATE: + snprintf(s, len, + "Carrega Savestates."); + break; + case MENU_LABEL_SAVE_STATE: + snprintf(s, len, + "Salva Savestates."); + break; + case MENU_LABEL_NETPLAY_FLIP_PLAYERS: + snprintf(s, len, + "Netplay inverte usuários."); + break; + case MENU_LABEL_CHEAT_INDEX_PLUS: + snprintf(s, len, + "Incrementa o índice de cheats.\n"); + break; + case MENU_LABEL_CHEAT_INDEX_MINUS: + snprintf(s, len, + "Decrementa o índice de cheats.\n"); + break; + case MENU_LABEL_SHADER_PREV: + snprintf(s, len, + "Aplica o shader anterior no diretório."); + break; + case MENU_LABEL_SHADER_NEXT: + snprintf(s, len, + "Aplica o próximo shader no diretório."); + break; + case MENU_LABEL_RESET: + snprintf(s, len, + "Reinicia o conteúdo.\n"); + break; + case MENU_LABEL_PAUSE_TOGGLE: + snprintf(s, len, + "Alterna estado de pausado e não pausado."); + break; + case MENU_LABEL_CHEAT_TOGGLE: + snprintf(s, len, + "Alterna índice de cheats.\n"); + break; + case MENU_LABEL_HOLD_FAST_FORWARD: + snprintf(s, len, + "Segure para avanço rápido. Soltando o botão \n" + "desativa o avanço rápido."); + break; + case MENU_LABEL_SLOWMOTION: + snprintf(s, len, + "Segure para câmera lenta."); + break; + case MENU_LABEL_FRAME_ADVANCE: + snprintf(s, len, + "O quadro avança quando o conteúdo está pausado."); + break; + case MENU_LABEL_MOVIE_RECORD_TOGGLE: + snprintf(s, len, + "Alterna entre estar gravando ou não."); + break; + case MENU_LABEL_L_X_PLUS: + case MENU_LABEL_L_X_MINUS: + case MENU_LABEL_L_Y_PLUS: + case MENU_LABEL_L_Y_MINUS: + case MENU_LABEL_R_X_PLUS: + case MENU_LABEL_R_X_MINUS: + case MENU_LABEL_R_Y_PLUS: + case MENU_LABEL_R_Y_MINUS: + snprintf(s, len, + "Eixo para o analógico (esquema DualShock).\n" + " \n" + "Associa normalmente, porém, se um analógico real \n" + "é associado, pode ser lido como um analógico\n" + "verdadeiro. \n" + " \n" + "Eixo positivo X é para direita. \n" + "Eixo positivo Y é para baixo."); + break; + default: + if (s[0] == '\0') + strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); + return -1; + } + + return 0; +} + const char *msg_hash_to_str_pt(enum msg_hash_enums msg) { switch (msg) diff --git a/intl/msg_hash_us.c b/intl/msg_hash_us.c index c82a4a18d6..74256aec95 100644 --- a/intl/msg_hash_us.c +++ b/intl/msg_hash_us.c @@ -16,11 +16,1090 @@ #include #include +#include #include #include "../msg_hash.h" +#include "../configuration.h" + +int menu_hash_get_help_us(uint32_t hash, char *s, size_t len) +{ + uint32_t driver_hash = 0; + settings_t *settings = config_get_ptr(); + + switch (hash) + { + case MENU_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC: + { + /* Work around C89 limitations */ + char u[501]; + char t[501]; + + strlcpy(t, + "RetroArch relies on an unique form of\n" + "audio/video synchronization where it needs to be\n" + "calibrated against the refresh rate of your\n" + "display for best performance results.\n" + " \n" + "If you experience any audio crackling or video\n" + "tearing, usually it means that you need to\n" + "calibrate the settings. Some choices below:\n" + " \n", sizeof(t)); + snprintf(u, sizeof(u), + "a) Go to '%s' -> '%s', and enable\n" + "'Threaded Video'. Refresh rate will not matter\n" + "in this mode, framerate will be higher,\n" + "but video might be less smooth.\n" + "b) Go to '%s' -> '%s', and look at\n" + "'%s'. Let it run for\n" + "2048 frames, then press 'OK'.", + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_REFRESH_RATE_AUTO)); + strlcat(s, t, len); + strlcat(s, u, len); + } + break; + case MENU_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC: + snprintf(s, len, + "To scan for content, go to '%s' and\n" + "select either '%s' or %s'.\n" + " \n" + "Files will be compared to database entries.\n" + "If there is a match, it will add an entry\n" + "to a collection.\n" + " \n" + "You can then easily access this content by\n" + "going to '%s' ->\n" + "'%s'\n" + "instead of having to go through the\n" + "filebrowser everytime.\n" + " \n" + "NOTE: Content for some cores might still not be\n" + "scannable. Examples include: \n" + "MAME, FBA, and maybe others." + , + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ADD_CONTENT_LIST), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_DIRECTORY), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_FILE), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CONTENT_COLLECTION_LIST) + ); + break; + case MENU_LABEL_VALUE_MENU_CONTROLS_PROLOG: + snprintf(s, len, + "You can use the following controls below \n" + "on either your gamepad or keyboard in order\n" + "to control the menu: \n" + " \n" + ); + break; + case MENU_LABEL_VALUE_EXTRACTING_PLEASE_WAIT: + snprintf(s, len, + "Welcome to RetroArch\n" + "\n" + "Extracting assets, please wait.\n" + "This might take a while...\n" + ); + break; + case MENU_LABEL_WELCOME_TO_RETROARCH: + snprintf(s, len, + "Welcome to RetroArch\n" + ); + break; + case MENU_LABEL_INPUT_DRIVER: + if (settings) + driver_hash = msg_hash_calculate(settings->input.driver); + + switch (driver_hash) + { + case MENU_LABEL_INPUT_DRIVER_UDEV: + snprintf(s, len, + "udev Input driver. \n" + " \n" + "This driver can run without X. \n" + " \n" + "It uses the recent evdev joypad API \n" + "for joystick support. It supports \n" + "hotplugging and force feedback (if \n" + "supported by device). \n" + " \n" + "The driver reads evdev events for keyboard \n" + "support. It also supports keyboard callback, \n" + "mice and touchpads. \n" + " \n" + "By default in most distros, /dev/input nodes \n" + "are root-only (mode 600). You can set up a udev \n" + "rule which makes these accessible to non-root." + ); + break; + case MENU_LABEL_INPUT_DRIVER_LINUXRAW: + snprintf(s, len, + "linuxraw Input driver. \n" + " \n" + "This driver requires an active TTY. Keyboard \n" + "events are read directly from the TTY which \n" + "makes it simpler, but not as flexible as udev. \n" "Mice, etc, are not supported at all. \n" + " \n" + "This driver uses the older joystick API \n" + "(/dev/input/js*)."); + break; + default: + snprintf(s, len, + "Input driver.\n" + " \n" + "Depending on video driver, it might \n" + "force a different input driver."); + break; + } + break; + case MENU_LABEL_LOAD_CONTENT: + snprintf(s, len, + "Load Content. \n" + "Browse for content. \n" + " \n" + "To load content, you need a \n" + "'Core' to use, and a content file.\n" + " \n" + "To control where the menu starts \n" + " to browse for content, set \n" + "'File Browser Directory'. \n" + "If not set, it will start in root. \n" + " \n" + "The browser will filter out \n" + "extensions for the last core set \n" + "in 'Load Core', and use that core \n" + "when content is loaded." + ); + break; + case MENU_LABEL_CORE_LIST: + snprintf(s, len, + "Load Core. \n" + " \n" + "Browse for a libretro core \n" + "implementation. Where the browser \n" + "starts depends on your Core Directory \n" + "path. If blank, it will start in root. \n" + " \n" + "If Core Directory is a directory, the menu \n" + "will use that as top folder. If Core \n" + "Directory is a full path, it will start \n" + "in the folder where the file is."); + break; + case MENU_LABEL_LOAD_CONTENT_HISTORY: + snprintf(s, len, + "Loading content from history. \n" + " \n" + "As content is loaded, content and libretro \n" + "core combinations are saved to history. \n" + " \n" + "The history is saved to a file in the same \n" + "directory as the RetroArch config file. If \n" + "no config file was loaded in startup, history \n" + "will not be saved or loaded, and will not exist \n" + "in the main menu." + ); + break; + case MENU_LABEL_VIDEO_DRIVER: + if (settings) + driver_hash = msg_hash_calculate(settings->video.driver); + + switch (driver_hash) + { + case MENU_LABEL_VIDEO_DRIVER_GL: + snprintf(s, len, + "OpenGL Video driver. \n" + " \n" + "This driver allows libretro GL cores to \n" + "be used in addition to software-rendered \n" + "core implementations.\n" + " \n" + "Performance for software-rendered and \n" + "libretro GL core implementations is \n" + "dependent on your graphics card's \n" + "underlying GL driver)."); + break; + case MENU_LABEL_VIDEO_DRIVER_SDL2: + snprintf(s, len, + "SDL 2 Video driver.\n" + " \n" + "This is an SDL 2 software-rendered video \n" + "driver.\n" + " \n" + "Performance for software-rendered libretro \n" + "core implementations is dependent \n" + "on your platform SDL implementation."); + break; + case MENU_LABEL_VIDEO_DRIVER_SDL1: + snprintf(s, len, + "SDL Video driver.\n" + " \n" + "This is an SDL 1.2 software-rendered video \n" + "driver.\n" + " \n" + "Performance is considered to be suboptimal. \n" + "Consider using it only as a last resort."); + break; + case MENU_LABEL_VIDEO_DRIVER_D3D: + snprintf(s, len, + "Direct3D Video driver. \n" + " \n" + "Performance for software-rendered cores \n" + "is dependent on your graphic card's \n" + "underlying D3D driver)."); + break; + case MENU_LABEL_VIDEO_DRIVER_EXYNOS: + snprintf(s, len, + "Exynos-G2D Video Driver. \n" + " \n" + "This is a low-level Exynos video driver. \n" + "Uses the G2D block in Samsung Exynos SoC \n" + "for blit operations. \n" + " \n" + "Performance for software rendered cores \n" + "should be optimal."); + break; + case MENU_LABEL_VIDEO_DRIVER_SUNXI: + snprintf(s, len, + "Sunxi-G2D Video Driver. \n" + " \n" + "This is a low-level Sunxi video driver. \n" + "Uses the G2D block in Allwinner SoCs."); + break; + default: + snprintf(s, len, + "Current Video driver."); + break; + } + break; + case MENU_LABEL_AUDIO_DSP_PLUGIN: + snprintf(s, len, + "Audio DSP plugin.\n" + " Processes audio before it's sent to \n" + "the driver." + ); + break; + case MENU_LABEL_AUDIO_RESAMPLER_DRIVER: + if (settings) + driver_hash = msg_hash_calculate(settings->audio.resampler); + + switch (driver_hash) + { + case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_SINC: + snprintf(s, len, + "Windowed SINC implementation."); + break; + case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_CC: + snprintf(s, len, + "Convoluted Cosine implementation."); + break; + } + break; + case MENU_LABEL_VIDEO_SHADER_PRESET: + snprintf(s, len, + "Load Shader Preset. \n" + " \n" + " Load a " +#ifdef HAVE_CG + "Cg" +#endif +#ifdef HAVE_GLSL +#ifdef HAVE_CG + "/" +#endif + "GLSL" +#endif +#ifdef HAVE_HLSL +#if defined(HAVE_CG) || defined(HAVE_HLSL) + "/" +#endif + "HLSL" +#endif + " preset directly. \n" + "The menu shader menu is updated accordingly. \n" + " \n" + "If the CGP uses scaling methods which are not \n" + "simple, (i.e. source scaling, same scaling \n" + "factor for X/Y), the scaling factor displayed \n" + "in the menu might not be correct." + ); + break; + case MENU_LABEL_VIDEO_SHADER_SCALE_PASS: + snprintf(s, len, + "Scale for this pass. \n" + " \n" + "The scale factor accumulates, i.e. 2x \n" + "for first pass and 2x for second pass \n" + "will give you a 4x total scale. \n" + " \n" + "If there is a scale factor for last \n" + "pass, the result is stretched to \n" + "screen with the filter specified in \n" + "'Default Filter'. \n" + " \n" + "If 'Don't Care' is set, either 1x \n" + "scale or stretch to fullscreen will \n" + "be used depending if it's not the last \n" + "pass or not." + ); + break; + case MENU_LABEL_VIDEO_SHADER_NUM_PASSES: + snprintf(s, len, + "Shader Passes. \n" + " \n" + "RetroArch allows you to mix and match various \n" + "shaders with arbitrary shader passes, with \n" + "custom hardware filters and scale factors. \n" + " \n" + "This option specifies the number of shader \n" + "passes to use. If you set this to 0, and use \n" + "Apply Shader Changes, you use a 'blank' shader. \n" + " \n" + "The Default Filter option will affect the \n" + "stretching filter."); + break; + case MENU_LABEL_VIDEO_SHADER_PARAMETERS: + snprintf(s, len, + "Shader Parameters. \n" + " \n" + "Modifies current shader directly. Will not be \n" + "saved to CGP/GLSLP preset file."); + break; + case MENU_LABEL_VIDEO_SHADER_PRESET_PARAMETERS: + snprintf(s, len, + "Shader Preset Parameters. \n" + " \n" + "Modifies shader preset currently in menu." + ); + break; + case MENU_LABEL_VIDEO_SHADER_PASS: + snprintf(s, len, + "Path to shader. \n" + " \n" + "All shaders must be of the same \n" + "type (i.e. CG, GLSL or HLSL). \n" + " \n" + "Set Shader Directory to set where \n" + "the browser starts to look for \n" + "shaders." + ); + break; + case MENU_LABEL_CONFIG_SAVE_ON_EXIT: + snprintf(s, len, + "Saves config to disk on exit.\n" + "Useful for menu as settings can be\n" + "modified. Overwrites the config.\n" + " \n" + "#include's and comments are not \n" + "preserved. \n" + " \n" + "By design, the config file is \n" + "considered immutable as it is \n" + "likely maintained by the user, \n" + "and should not be overwritten \n" + "behind the user's back." +#if defined(RARCH_CONSOLE) || defined(RARCH_MOBILE) + "\nThis is not not the case on \n" + "consoles however, where \n" + "looking at the config file \n" + "manually isn't really an option." +#endif + ); + break; + case MENU_LABEL_VIDEO_SHADER_FILTER_PASS: + snprintf(s, len, + "Hardware filter for this pass. \n" + " \n" + "If 'Don't Care' is set, 'Default \n" + "Filter' will be used." + ); + break; + case MENU_LABEL_AUTOSAVE_INTERVAL: + snprintf(s, len, + "Autosaves the non-volatile SRAM \n" + "at a regular interval.\n" + " \n" + "This is disabled by default unless set \n" + "otherwise. The interval is measured in \n" + "seconds. \n" + " \n" + "A value of 0 disables autosave."); + break; + case MENU_LABEL_INPUT_BIND_DEVICE_TYPE: + snprintf(s, len, + "Input Device Type. \n" + " \n" + "Picks which device type to use. This is \n" + "relevant for the libretro core itself." + ); + break; + case MENU_LABEL_LIBRETRO_LOG_LEVEL: + snprintf(s, len, + "Sets log level for libretro cores \n" + "(GET_LOG_INTERFACE). \n" + " \n" + " If a log level issued by a libretro \n" + " core is below libretro_log level, it \n" + " is ignored.\n" + " \n" + " DEBUG logs are always ignored unless \n" + " verbose mode is activated (--verbose).\n" + " \n" + " DEBUG = 0\n" + " INFO = 1\n" + " WARN = 2\n" + " ERROR = 3" + ); + break; + case MENU_LABEL_STATE_SLOT_INCREASE: + case MENU_LABEL_STATE_SLOT_DECREASE: + snprintf(s, len, + "State slots.\n" + " \n" + " With slot set to 0, save state name is *.state \n" + " (or whatever defined on commandline).\n" + "When slot is != 0, path will be (path)(d), \n" + "where (d) is slot number."); + break; + case MENU_LABEL_SHADER_APPLY_CHANGES: + snprintf(s, len, + "Apply Shader Changes. \n" + " \n" + "After changing shader settings, use this to \n" + "apply changes. \n" + " \n" + "Changing shader settings is a somewhat \n" + "expensive operation so it has to be \n" + "done explicitly. \n" + " \n" + "When you apply shaders, the menu shader \n" + "settings are saved to a temporary file (either \n" + "menu.cgp or menu.glslp) and loaded. The file \n" + "persists after RetroArch exits. The file is \n" + "saved to Shader Directory." + ); + break; + case MENU_LABEL_INPUT_BIND_DEVICE_ID: + snprintf(s, len, + "Input Device. \n" + " \n" + "Picks which gamepad to use for user N. \n" + "The name of the pad is available." + ); + break; + case MENU_LABEL_MENU_TOGGLE: + snprintf(s, len, + "Toggles menu."); + break; + case MENU_LABEL_GRAB_MOUSE_TOGGLE: + snprintf(s, len, + "Toggles mouse grab.\n" + " \n" + "When mouse is grabbed, RetroArch hides the \n" + "mouse, and keeps the mouse pointer inside \n" + "the window to allow relative mouse input to \n" + "work better."); + break; + case MENU_LABEL_DISK_NEXT: + snprintf(s, len, + "Cycles through disk images. Use after \n" + "ejecting. \n" + " \n" + " Complete by toggling eject again."); + break; + case MENU_LABEL_VIDEO_FILTER: +#ifdef HAVE_FILTERS_BUILTIN + snprintf(s, len, + "CPU-based video filter."); +#else + snprintf(s, len, + "CPU-based video filter.\n" + " \n" + "Path to a dynamic library."); +#endif + break; + case MENU_LABEL_AUDIO_DEVICE: + snprintf(s, len, + "Override the default audio device \n" + "the audio driver uses.\n" + "This is driver dependent. E.g.\n" +#ifdef HAVE_ALSA + " \n" + "ALSA wants a PCM device." +#endif +#ifdef HAVE_OSS + " \n" + "OSS wants a path (e.g. /dev/dsp)." +#endif +#ifdef HAVE_JACK + " \n" + "JACK wants portnames (e.g. system:playback1\n" + ",system:playback_2)." +#endif +#ifdef HAVE_RSOUND + " \n" + "RSound wants an IP address to an RSound \n" + "server." +#endif + ); + break; + case MENU_LABEL_DISK_EJECT_TOGGLE: + snprintf(s, len, + "Toggles eject for disks.\n" + " \n" + "Used for multiple-disk content."); + break; + case MENU_LABEL_ENABLE_HOTKEY: + snprintf(s, len, + "Enable other hotkeys.\n" + " \n" + " If this hotkey is bound to either keyboard, \n" + "joybutton or joyaxis, all other hotkeys will \n" + "be disabled unless this hotkey is also held \n" + "at the same time. \n" + " \n" + "This is useful for RETRO_KEYBOARD centric \n" + "implementations which query a large area of \n" + "the keyboard, where it is not desirable that \n" + "hotkeys get in the way."); + break; + case MENU_LABEL_REWIND_ENABLE: + snprintf(s, len, + "Enable rewinding.\n" + " \n" + "This will take a performance hit, \n" + "so it is disabled by default."); + break; + case MENU_LABEL_LIBRETRO_DIR_PATH: + snprintf(s, len, + "Core Directory. \n" + " \n" + "A directory for where to search for \n" + "libretro core implementations."); + break; + case MENU_LABEL_VIDEO_REFRESH_RATE_AUTO: + snprintf(s, len, + "Refresh Rate Auto.\n" + " \n" + "The accurate refresh rate of our monitor (Hz).\n" + "This is used to calculate audio input rate with \n" + "the formula: \n" + " \n" + "audio_input_rate = game input rate * display \n" + "refresh rate / game refresh rate\n" + " \n" + "If the implementation does not report any \n" + "values, NTSC defaults will be assumed for \n" + "compatibility.\n" + " \n" + "This value should stay close to 60Hz to avoid \n" + "large pitch changes. If your monitor does \n" + "not run at 60Hz, or something close to it, \n" + "disable VSync, and leave this at its default."); + break; + case MENU_LABEL_VIDEO_ROTATION: + snprintf(s, len, + "Forces a certain rotation \n" + "of the screen.\n" + " \n" + "The rotation is added to rotations which\n" + "the libretro core sets (see Video Allow\n" + "Rotate)."); + break; + case MENU_LABEL_VIDEO_SCALE: + snprintf(s, len, + "Fullscreen resolution.\n" + " \n" + "Resolution of 0 uses the \n" + "resolution of the environment.\n"); + break; + case MENU_LABEL_FASTFORWARD_RATIO: + snprintf(s, len, + "Fastforward ratio." + " \n" + "The maximum rate at which content will\n" + "be run when using fast forward.\n" + " \n" + " (E.g. 5.0 for 60 fps content => 300 fps \n" + "cap).\n" + " \n" + "RetroArch will go to sleep to ensure that \n" + "the maximum rate will not be exceeded.\n" + "Do not rely on this cap to be perfectly \n" + "accurate."); + break; + case MENU_LABEL_VIDEO_MONITOR_INDEX: + snprintf(s, len, + "Which monitor to prefer.\n" + " \n" + "0 (default) means no particular monitor \n" + "is preferred, 1 and up (1 being first \n" + "monitor), suggests RetroArch to use that \n" + "particular monitor."); + break; + case MENU_LABEL_VIDEO_CROP_OVERSCAN: + snprintf(s, len, + "Forces cropping of overscanned \n" + "frames.\n" + " \n" + "Exact behavior of this option is \n" + "core-implementation specific."); + break; + case MENU_LABEL_VIDEO_SCALE_INTEGER: + snprintf(s, len, + "Only scales video in integer \n" + "steps.\n" + " \n" + "The base size depends on system-reported \n" + "geometry and aspect ratio.\n" + " \n" + "If Force Aspect is not set, X/Y will be \n" + "integer scaled independently."); + break; + case MENU_LABEL_AUDIO_VOLUME: + snprintf(s, len, + "Audio volume, expressed in dB.\n" + " \n" + " 0 dB is normal volume. No gain will be applied.\n" + "Gain can be controlled in runtime with Input\n" + "Volume Up / Input Volume Down."); + break; + case MENU_LABEL_AUDIO_RATE_CONTROL_DELTA: + snprintf(s, len, + "Audio rate control.\n" + " \n" + "Setting this to 0 disables rate control.\n" + "Any other value controls audio rate control \n" + "delta.\n" + " \n" + "Defines how much input rate can be adjusted \n" + "dynamically.\n" + " \n" + " Input rate is defined as: \n" + " input rate * (1.0 +/- (rate control delta))"); + break; + case MENU_LABEL_AUDIO_MAX_TIMING_SKEW: + snprintf(s, len, + "Maximum audio timing skew.\n" + " \n" + "Defines the maximum change in input rate.\n" + "You may want to increase this to enable\n" + "very large changes in timing, for example\n" + "running PAL cores on NTSC displays, at the\n" + "cost of inaccurate audio pitch.\n" + " \n" + " Input rate is defined as: \n" + " input rate * (1.0 +/- (max timing skew))"); + break; + case MENU_LABEL_OVERLAY_NEXT: + snprintf(s, len, + "Toggles to next overlay.\n" + " \n" + "Wraps around."); + break; + case MENU_LABEL_LOG_VERBOSITY: + snprintf(s, len, + "Enable or disable verbosity level \n" + "of frontend."); + break; + case MENU_LABEL_VOLUME_UP: + snprintf(s, len, + "Increases audio volume."); + break; + case MENU_LABEL_VOLUME_DOWN: + snprintf(s, len, + "Decreases audio volume."); + break; + case MENU_LABEL_VIDEO_DISABLE_COMPOSITION: + snprintf(s, len, + "Forcibly disable composition.\n" + "Only valid on Windows Vista/7 for now."); + break; + case MENU_LABEL_PERFCNT_ENABLE: + snprintf(s, len, + "Enable or disable frontend \n" + "performance counters."); + break; + case MENU_LABEL_SYSTEM_DIRECTORY: + snprintf(s, len, + "System Directory. \n" + " \n" + "Sets the 'system' directory.\n" + "Cores can query for this\n" + "directory to load BIOSes, \n" + "system-specific configs, etc."); + break; + case MENU_LABEL_SAVESTATE_AUTO_SAVE: + snprintf(s, len, + "Automatically saves a savestate at the \n" + "end of RetroArch's lifetime.\n" + " \n" + "RetroArch will automatically load any savestate\n" + "with this path on startup if 'Auto Load State\n" + "is enabled."); + break; + case MENU_LABEL_VIDEO_THREADED: + snprintf(s, len, + "Use threaded video driver.\n" + " \n" + "Using this might improve performance at \n" + "possible cost of latency and more video \n" + "stuttering."); + break; + case MENU_LABEL_VIDEO_VSYNC: + snprintf(s, len, + "Video V-Sync.\n"); + break; + case MENU_LABEL_VIDEO_HARD_SYNC: + snprintf(s, len, + "Attempts to hard-synchronize \n" + "CPU and GPU.\n" + " \n" + "Can reduce latency at cost of \n" + "performance."); + break; + case MENU_LABEL_REWIND_GRANULARITY: + snprintf(s, len, + "Rewind granularity.\n" + " \n" + " When rewinding defined number of \n" + "frames, you can rewind several frames \n" + "at a time, increasing the rewinding \n" + "speed."); + break; + case MENU_LABEL_SCREENSHOT: + snprintf(s, len, + "Take screenshot."); + break; + case MENU_LABEL_VIDEO_FRAME_DELAY: + snprintf(s, len, + "Sets how many milliseconds to delay\n" + "after VSync before running the core.\n" + "\n" + "Can reduce latency at cost of\n" + "higher risk of stuttering.\n" + " \n" + "Maximum is 15."); + break; + case MENU_LABEL_VIDEO_HARD_SYNC_FRAMES: + snprintf(s, len, + "Sets how many frames CPU can \n" + "run ahead of GPU when using 'GPU \n" + "Hard Sync'.\n" + " \n" + "Maximum is 3.\n" + " \n" + " 0: Syncs to GPU immediately.\n" + " 1: Syncs to previous frame.\n" + " 2: Etc ..."); + break; + case MENU_LABEL_VIDEO_BLACK_FRAME_INSERTION: + snprintf(s, len, + "Inserts a black frame inbetween \n" + "frames.\n" + " \n" + "Useful for 120 Hz monitors who want to \n" + "play 60 Hz material with eliminated \n" + "ghosting.\n" + " \n" + "Video refresh rate should still be \n" + "configured as if it is a 60 Hz monitor \n" + "(divide refresh rate by 2)."); + break; + case MENU_LABEL_RGUI_SHOW_START_SCREEN: + snprintf(s, len, + "Show startup screen in menu.\n" + "Is automatically set to false when seen\n" + "for the first time.\n" + " \n" + "This is only updated in config if\n" + "'Save Configuration on Exit' is enabled.\n"); + break; + case MENU_LABEL_CORE_SPECIFIC_CONFIG: + snprintf(s, len, + "Load up a specific config file \n" + "based on the core being used.\n"); + break; + case MENU_LABEL_VIDEO_FULLSCREEN: + snprintf(s, len, "Toggles fullscreen."); + break; + case MENU_LABEL_BLOCK_SRAM_OVERWRITE: + snprintf(s, len, + "Block SRAM from being overwritten \n" + "when loading save states.\n" + " \n" + "Might potentially lead to buggy games."); + break; + case MENU_LABEL_PAUSE_NONACTIVE: + snprintf(s, len, + "Pause gameplay when window focus \n" + "is lost."); + break; + case MENU_LABEL_VIDEO_GPU_SCREENSHOT: + snprintf(s, len, + "Screenshots output of GPU shaded \n" + "material if available."); + break; + case MENU_LABEL_SCREENSHOT_DIRECTORY: + snprintf(s, len, + "Screenshot Directory. \n" + " \n" + "Directory to dump screenshots to." + ); + break; + case MENU_LABEL_VIDEO_SWAP_INTERVAL: + snprintf(s, len, + "VSync Swap Interval.\n" + " \n" + "Uses a custom swap interval for VSync. Set this \n" + "to effectively halve monitor refresh rate."); + break; + case MENU_LABEL_SAVEFILE_DIRECTORY: + snprintf(s, len, + "Savefile Directory. \n" + " \n" + "Save all save files (*.srm) to this \n" + "directory. This includes related files like \n" + ".bsv, .rt, .psrm, etc...\n" + " \n" + "This will be overridden by explicit command line\n" + "options."); + break; + case MENU_LABEL_SAVESTATE_DIRECTORY: + snprintf(s, len, + "Savestate Directory. \n" + " \n" + "Save all save states (*.state) to this \n" + "directory.\n" + " \n" + "This will be overridden by explicit command line\n" + "options."); + break; + case MENU_LABEL_ASSETS_DIRECTORY: + snprintf(s, len, + "Assets Directory. \n" + " \n" + " This location is queried by default when \n" + "menu interfaces try to look for loadable \n" + "assets, etc."); + break; + case MENU_LABEL_DYNAMIC_WALLPAPERS_DIRECTORY: + snprintf(s, len, + "Dynamic Wallpapers Directory. \n" + " \n" + " The place to store wallpapers that will \n" + "be loaded dynamically by the menu depending \n" + "on context."); + break; + case MENU_LABEL_SLOWMOTION_RATIO: + snprintf(s, len, + "Slowmotion ratio." + " \n" + "When slowmotion, content will slow\n" + "down by factor."); + break; + case MENU_LABEL_INPUT_AXIS_THRESHOLD: + snprintf(s, len, + "Defines axis threshold.\n" + " \n" + "How far an axis must be tilted to result\n" + "in a button press.\n" + " Possible values are [0.0, 1.0]."); + break; + case MENU_LABEL_INPUT_TURBO_PERIOD: + snprintf(s, len, + "Turbo period.\n" + " \n" + "Describes speed of which turbo-enabled\n" + "buttons toggle." + ); + break; + case MENU_LABEL_INPUT_AUTODETECT_ENABLE: + snprintf(s, len, + "Enable input auto-detection.\n" + " \n" + "Will attempt to auto-configure \n" + "joypads, Plug-and-Play style."); + break; + case MENU_LABEL_CAMERA_ALLOW: + snprintf(s, len, + "Allow or disallow camera access by \n" + "cores."); + break; + case MENU_LABEL_LOCATION_ALLOW: + snprintf(s, len, + "Allow or disallow location services \n" + "access by cores."); + break; + case MENU_LABEL_TURBO: + snprintf(s, len, + "Turbo enable.\n" + " \n" + "Holding the turbo while pressing another \n" + "button will let the button enter a turbo \n" + "mode where the button state is modulated \n" + "with a periodic signal. \n" + " \n" + "The modulation stops when the button \n" + "itself (not turbo button) is released."); + break; + case MENU_LABEL_OSK_ENABLE: + snprintf(s, len, + "Enable/disable on-screen keyboard."); + break; + case MENU_LABEL_AUDIO_MUTE: + snprintf(s, len, + "Mute/unmute audio."); + break; + case MENU_LABEL_REWIND: + snprintf(s, len, + "Hold button down to rewind.\n" + " \n" + "Rewind must be enabled."); + break; + case MENU_LABEL_EXIT_EMULATOR: + snprintf(s, len, + "Key to exit RetroArch cleanly." +#if !defined(RARCH_MOBILE) && !defined(RARCH_CONSOLE) + "\nKilling it in any hard way (SIGKILL, \n" + "etc) will terminate without saving\n" + "RAM, etc. On Unix-likes,\n" + "SIGINT/SIGTERM allows\n" + "a clean deinitialization." +#endif + ); + break; + case MENU_LABEL_LOAD_STATE: + snprintf(s, len, + "Loads state."); + break; + case MENU_LABEL_SAVE_STATE: + snprintf(s, len, + "Saves state."); + break; + case MENU_LABEL_NETPLAY_FLIP_PLAYERS: + snprintf(s, len, + "Netplay flip users."); + break; + case MENU_LABEL_CHEAT_INDEX_PLUS: + snprintf(s, len, + "Increment cheat index.\n"); + break; + case MENU_LABEL_CHEAT_INDEX_MINUS: + snprintf(s, len, + "Decrement cheat index.\n"); + break; + case MENU_LABEL_SHADER_PREV: + snprintf(s, len, + "Applies previous shader in directory."); + break; + case MENU_LABEL_SHADER_NEXT: + snprintf(s, len, + "Applies next shader in directory."); + break; + case MENU_LABEL_RESET: + snprintf(s, len, + "Reset the content.\n"); + break; + case MENU_LABEL_PAUSE_TOGGLE: + snprintf(s, len, + "Toggle between paused and non-paused state."); + break; + case MENU_LABEL_CHEAT_TOGGLE: + snprintf(s, len, + "Toggle cheat index.\n"); + break; + case MENU_LABEL_HOLD_FAST_FORWARD: + snprintf(s, len, + "Hold for fast-forward. Releasing button \n" + "disables fast-forward."); + break; + case MENU_LABEL_SLOWMOTION: + snprintf(s, len, + "Hold for slowmotion."); + break; + case MENU_LABEL_FRAME_ADVANCE: + snprintf(s, len, + "Frame advance when content is paused."); + break; + case MENU_LABEL_MOVIE_RECORD_TOGGLE: + snprintf(s, len, + "Toggle between recording and not."); + break; + case MENU_LABEL_L_X_PLUS: + case MENU_LABEL_L_X_MINUS: + case MENU_LABEL_L_Y_PLUS: + case MENU_LABEL_L_Y_MINUS: + case MENU_LABEL_R_X_PLUS: + case MENU_LABEL_R_X_MINUS: + case MENU_LABEL_R_Y_PLUS: + case MENU_LABEL_R_Y_MINUS: + snprintf(s, len, + "Axis for analog stick (DualShock-esque).\n" + " \n" + "Bound as usual, however, if a real analog \n" + "axis is bound, it can be read as a true analog.\n" + " \n" + "Positive X axis is right. \n" + "Positive Y axis is down."); + break; + case MENU_LABEL_VALUE_WHAT_IS_A_CORE_DESC: + snprintf(s, len, + "RetroArch by itself does nothing. \n" + " \n" + "To make it do things, you need to \n" + "load a program into it. \n" + "\n" + "We call such a program 'Libretro core', \n" + "or 'core' in short. \n" + " \n" + "To load a core, select one from\n" + "'Load Core'.\n" + " \n" +#ifdef HAVE_NETWORKING + "You can obtain cores in several ways: \n" + "* Download them by going to\n" + "'%s' -> '%s'.\n" + "* Manually move them over to\n" + "'%s'.", + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONLINE_UPDATER), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_UPDATER_LIST), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) +#else + "You can obtain cores by\n" + "manually moving them over to\n" + "'%s'.", + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) +#endif + ); + break; + case MENU_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD_DESC: + snprintf(s, len, + "You can change the virtual gamepad overlay\n" + "by going to '%s' -> '%s'." + " \n" + "From there you can change the overlay,\n" + "change the size and opacity of the buttons, etc.\n" + " \n" + "NOTE: By default, virtual gamepad overlays are\n" + "hidden when in the menu.\n" + "If you'd like to change this behavior,\n" + "you can set '%s' to false.", + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OVERLAY_SETTINGS), + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_HIDE_IN_MENU) + ); + default: + if (string_is_empty(s)) + strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); + return -1; + } + + return 0; +} -#ifdef HAVE_MENU static const char *menu_hash_to_str_us_label_enum(enum msg_hash_enums msg) { switch (msg) @@ -883,7 +1962,6 @@ static const char *menu_hash_to_str_us_label_enum(enum msg_hash_enums msg) return "null"; } -#endif const char *msg_hash_to_str_us(enum msg_hash_enums msg) { diff --git a/menu/cbs/menu_cbs_get_value.c b/menu/cbs/menu_cbs_get_value.c index edec672a94..a763819b0a 100644 --- a/menu/cbs/menu_cbs_get_value.c +++ b/menu/cbs/menu_cbs_get_value.c @@ -21,7 +21,6 @@ #include "../menu_animation.h" #include "../menu_cbs.h" #include "../menu_shader.h" -#include "../menu_hash.h" #include "../../input/input_autodetect.h" #include "../../input/input_config.h" diff --git a/menu/cbs/menu_cbs_info.c b/menu/cbs/menu_cbs_info.c index c31ea26cc1..88e4423ffc 100644 --- a/menu/cbs/menu_cbs_info.c +++ b/menu/cbs/menu_cbs_info.c @@ -18,7 +18,6 @@ #include "../menu_driver.h" #include "../menu_navigation.h" #include "../menu_cbs.h" -#include "../menu_hash.h" #ifndef BIND_ACTION_INFO #define BIND_ACTION_INFO(cbs, name) \ diff --git a/menu/cbs/menu_cbs_left.c b/menu/cbs/menu_cbs_left.c index 0f85bdc6fc..1abee5d751 100644 --- a/menu/cbs/menu_cbs_left.c +++ b/menu/cbs/menu_cbs_left.c @@ -19,7 +19,6 @@ #include "../menu_driver.h" #include "../menu_cbs.h" -#include "../menu_hash.h" #include "../menu_input.h" #include "../menu_setting.h" #include "../menu_shader.h" diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index 185466b0df..eb0111c5cd 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -26,7 +26,6 @@ #include "../menu_setting.h" #include "../menu_shader.h" #include "../menu_navigation.h" -#include "../menu_hash.h" #include "../menu_content.h" #include "../../core_info.h" diff --git a/menu/cbs/menu_cbs_refresh.c b/menu/cbs/menu_cbs_refresh.c index 70afd35004..afb015578b 100644 --- a/menu/cbs/menu_cbs_refresh.c +++ b/menu/cbs/menu_cbs_refresh.c @@ -15,7 +15,6 @@ #include "../menu_driver.h" #include "../menu_cbs.h" -#include "../menu_hash.h" #ifndef BIND_ACTION_REFRESH #define BIND_ACTION_REFRESH(cbs, name) \ diff --git a/menu/cbs/menu_cbs_right.c b/menu/cbs/menu_cbs_right.c index ad7e0d7400..4c051c4bc3 100644 --- a/menu/cbs/menu_cbs_right.c +++ b/menu/cbs/menu_cbs_right.c @@ -19,7 +19,6 @@ #include "../menu_driver.h" #include "../menu_cbs.h" -#include "../menu_hash.h" #include "../menu_input.h" #include "../menu_setting.h" #include "../menu_shader.h" diff --git a/menu/cbs/menu_cbs_start.c b/menu/cbs/menu_cbs_start.c index b886f4e8b1..469f7488de 100644 --- a/menu/cbs/menu_cbs_start.c +++ b/menu/cbs/menu_cbs_start.c @@ -22,7 +22,6 @@ #include "../menu_display.h" #include "../menu_setting.h" #include "../menu_shader.h" -#include "../menu_hash.h" #include "../../core_info.h" #include "../../managers/core_option_manager.h" diff --git a/menu/cbs/menu_cbs_title.c b/menu/cbs/menu_cbs_title.c index addbd2ffe8..83cbdf3492 100644 --- a/menu/cbs/menu_cbs_title.c +++ b/menu/cbs/menu_cbs_title.c @@ -21,7 +21,6 @@ #include "../menu_driver.h" #include "../menu_cbs.h" -#include "../menu_hash.h" #include "../../general.h" diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index e68cb361b3..6bca3e9fe7 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -33,7 +33,6 @@ #include "../menu_driver.h" #include "../menu_animation.h" #include "../menu_navigation.h" -#include "../menu_hash.h" #include "../menu_display.h" #include "../../core_info.h" diff --git a/menu/drivers/menu_generic.c b/menu/drivers/menu_generic.c index 427e15ada0..9388c729dd 100644 --- a/menu/drivers/menu_generic.c +++ b/menu/drivers/menu_generic.c @@ -25,7 +25,6 @@ #include "../menu_display.h" #include "../menu_displaylist.h" #include "../menu_navigation.h" -#include "../menu_hash.h" #include "../menu_entries.h" #include "../../configuration.h" diff --git a/menu/drivers/nuklear.c b/menu/drivers/nuklear.c index 1894b83b2e..a09be9c1dd 100644 --- a/menu/drivers/nuklear.c +++ b/menu/drivers/nuklear.c @@ -37,7 +37,6 @@ #include "../menu_driver.h" #include "../menu_animation.h" #include "../menu_navigation.h" -#include "../menu_hash.h" #include "../menu_display.h" #include "../../core_info.h" diff --git a/menu/drivers/nuklear/nk_wnd_file_picker.c b/menu/drivers/nuklear/nk_wnd_file_picker.c index 47c3171271..3ba7cc8020 100644 --- a/menu/drivers/nuklear/nk_wnd_file_picker.c +++ b/menu/drivers/nuklear/nk_wnd_file_picker.c @@ -29,7 +29,6 @@ #include "nk_menu.h" #include "../../menu_driver.h" -#include "../../menu_hash.h" #include "../../frontend/frontend_driver.h" static bool assets_loaded; diff --git a/menu/drivers/nuklear/nk_wnd_main.c b/menu/drivers/nuklear/nk_wnd_main.c index a225a74b5c..0eff5485e6 100644 --- a/menu/drivers/nuklear/nk_wnd_main.c +++ b/menu/drivers/nuklear/nk_wnd_main.c @@ -27,7 +27,6 @@ #include #include "../../menu_driver.h" -#include "../../menu_hash.h" static char* out; static char core[PATH_MAX_LENGTH] = {0}; diff --git a/menu/drivers/nuklear/nk_wnd_settings.c b/menu/drivers/nuklear/nk_wnd_settings.c index a8ce97ea1f..d89265d72e 100644 --- a/menu/drivers/nuklear/nk_wnd_settings.c +++ b/menu/drivers/nuklear/nk_wnd_settings.c @@ -27,7 +27,6 @@ #include #include "../../menu_driver.h" -#include "../../menu_hash.h" void nk_wnd_settings(nk_menu_handle_t *nk) { diff --git a/menu/drivers/nuklear/nk_wnd_shader_parameters.c b/menu/drivers/nuklear/nk_wnd_shader_parameters.c index 55b59a09d2..76a7ad8232 100644 --- a/menu/drivers/nuklear/nk_wnd_shader_parameters.c +++ b/menu/drivers/nuklear/nk_wnd_shader_parameters.c @@ -27,7 +27,6 @@ #include #include "../../menu_driver.h" -#include "../../menu_hash.h" #include "../../../gfx/common/gl_common.h" #include "../../../core_info.h" diff --git a/menu/drivers/rgui.c b/menu/drivers/rgui.c index 8221959010..9669fa7aa8 100644 --- a/menu/drivers/rgui.c +++ b/menu/drivers/rgui.c @@ -37,7 +37,6 @@ #include "../menu_animation.h" #include "../menu_display.h" #include "../menu_navigation.h" -#include "../menu_hash.h" #include "../../gfx/drivers_font_renderer/bitmap.h" diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 6a2cf9d020..a0af73c67a 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -34,7 +34,6 @@ #include "../menu_entry.h" #include "../menu_animation.h" #include "../menu_display.h" -#include "../menu_hash.h" #include "../menu_display.h" #include "../menu_navigation.h" diff --git a/menu/drivers/zarch.c b/menu/drivers/zarch.c index 285052ffce..34acb5f002 100644 --- a/menu/drivers/zarch.c +++ b/menu/drivers/zarch.c @@ -44,7 +44,6 @@ #include "../menu_entry.h" #include "../menu_display.h" #include "../menu_navigation.h" -#include "../menu_hash.h" #include "../../retroarch.h" #include "../../gfx/font_driver.h" diff --git a/menu/intl/menu_hash_de.c b/menu/intl/menu_hash_de.c deleted file mode 100644 index 6f73b91c57..0000000000 --- a/menu/intl/menu_hash_de.c +++ /dev/null @@ -1,434 +0,0 @@ -/* RetroArch - A frontend for libretro. - * Copyright (C) 2011-2016 - 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 . - */ - -#include -#include - -#include - -#include "../menu_hash.h" -#include "../../msg_hash.h" -#include "../../configuration.h" - - /* IMPORTANT: - * For non-english characters to work without proper unicode support, - * we need this file to be encoded in ISO 8859-1 (Latin1), not UTF-8. - * If you save this file as UTF-8, you'll break non-english characters - * (e.g. German "Umlauts" and Portugese diacritics). - */ -/* DO NOT REMOVE THIS. If it causes build failure, it's because you saved the file as UTF-8. Read the above comment. */ -extern const char force_iso_8859_1[sizeof("äÄöÖßüÜ")==7+1 ? 1 : -1]; - -int menu_hash_get_help_de(uint32_t hash, char *s, size_t len) -{ - uint32_t driver_hash = 0; - settings_t *settings = config_get_ptr(); - - /* If this one throws errors, stop sledgehammering square pegs into round holes and */ - /* READ THE COMMENTS at the top of the file. */ (void)sizeof(force_iso_8859_1); - - switch (hash) - { - case MENU_LABEL_INPUT_DRIVER: - if (settings) - driver_hash = msg_hash_calculate(settings->input.driver); - - switch (driver_hash) - { - case MENU_LABEL_INPUT_DRIVER_UDEV: - { - /* Work around C89 limitations */ - char u[501]; - char t[501]; - - snprintf(t, sizeof(t), - "udev-Eingabetreiber. \n" - " \n" - "Dieser Treiber kann ohne X ausgeführt werden. \n" - " \n" - "Er verwende die neue evdev-Joypad-API \n" - "für die Joystick-Unterstützung und unterstützt \n" - "auch Hotplugging und Force-Feedback (wenn das \n" - "Gerät dies unterstützt). \n" - " \n" - ); - snprintf(u, sizeof(u), - "Der Treiber liest evdev-Ereigniss für Tastatur- \n" - "Unterstützung und kann auch mit Tastatur-Callbacks, \n" - "Mäusen und Touchpads umgehen. \n" - " \n" - "Standardmäßig sind die /dev/input-Dateien in den \n" - "meisten Linux-Distribution nur für den Root- \n" - "Benutzer lesbar (mode 600). Du kannst eine udev- \n" - "Regel erstellen, die auch den Zugriff für andere \n" - "Benutzer erlaubt."); - strlcat(s, t, len); - strlcat(s, u, len); - } - break; - case MENU_LABEL_INPUT_DRIVER_LINUXRAW: - snprintf(s, len, - "linuxraw-Eingabetreiber. \n" - " \n" - "Dieser Treiber erforder eine aktive TTY-Schnittstelle. \n" - "Tastatur-Ereignisse werden direkt von der TTY gelesen, \n" - "was es einfacher, aber weniger flexibel als udev macht. \n" - "Mäuse, etc, werden nicht unterstützt. \n" - " \n" - "Dieser Treiber verwendet die alte Joystick-API \n" - "(/dev/input/js*)."); - break; - default: - snprintf(s, len, - "Eingabetreiber.\n" - " \n" - "Abhängig vom Grafiktreiber kann ein anderer Eingabe- \n" - "treiber erzwungen werden."); - break; - } - break; - case MENU_LABEL_LOAD_CONTENT: - snprintf(s, len, - "Lade Content. \n" - "Suche nach Content. \n" - " \n" - "Um Content zu laden benötigst du den passenden \n" - "Libretro-Core und die Content-Datei. \n" - " \n" - "Um einzustellen, welcher Ordner standardmäßig \n" - "geöffnet wird, um nach Content zu suchen, solltest \n" - "du das Content-Verzeichnis setzen. Wenn es nicht \n" - "gesetzt ist, wird es im Root-Verzeichen starten. \n" - " \n" - "Der Browser wird nur Dateierweiterungen des \n" - "zuletzt geladenen Cores zeigen und diesen Core \n" - "nutzen, wenn Content geladen wird." - ); - break; - case MENU_LABEL_CORE_LIST: - snprintf(s, len, - "Lade Core. \n" - " \n" - "Suche nach einer Libretro-Core- \n" - "Implementierung. In welchem Verzeichnis der \n" - "Browser startet, hängt vom deinem Core-Verzeichnis \n" - "ab. Falls du es nicht eingestellt hast, wird er \n" - "im Root-Verzeichnis starten. \n" - " \n" - "Ist das Core-Verzeichnis ein Ordner, wird das \n" - "Menü diesen als Startverzeichnis nutzen. Ist \n" - "das Core-Verzeichnis ein Pfad zu einer Datei, \n" - "wird es in dem Verzeichnis starten, in dem \n" - "sich die Datei befindet."); - break; - case MENU_LABEL_LOAD_CONTENT_HISTORY: - snprintf(s, len, - "Lade Content aus dem Verlauf. \n" - " \n" - "Wenn Content geladen wird, wird der Content \n" - "sowie der dazugehörige Core im Verlauf gespeichert. \n" - " \n" - "Der Verlauf wird im selben Verzeichnis wie die \n" - "RetroArch-Konfigurationsdatei gespeicher. Wenn \n" - "beim Start keine Konfigurationsdatei geladen wurde, \n" - "wird keine Verlauf geladen oder gespeichert und nicht \n" - "im Hauptmenü angezeigt." - ); - break; - case MENU_LABEL_VIDEO_DRIVER: - if (settings) - driver_hash = msg_hash_calculate(settings->video.driver); - - switch (driver_hash) - { - case MENU_LABEL_VIDEO_DRIVER_GL: - snprintf(s, len, - "OpenGL-Grafiktreiber. \n" - " \n" - "Dieser Treiber erlaubt es, neben software- \n" - "gerenderten Cores aus Libretro-GL-Cores zu \n" - "verwenden. \n" - " \n" - "Die Leistung, sowohl bei software-gerenderten, \n" - "als auch bei Libretro-GL-Cores, hängt von dem \n" - "GL-Treiber deiner Grafikkarte ab."); - break; - case MENU_LABEL_VIDEO_DRIVER_SDL2: - snprintf(s, len, - "SDL2-Grafiktreiber.\n" - " \n" - "Dies ist ein SDL2-Grafiktreiber \n" - "mit Software-Rendering." - " \n" - "Die Leistung hängt von der SDL- \n" - "Implementierung deiner Plattform ab."); - break; - case MENU_LABEL_VIDEO_DRIVER_SDL1: - snprintf(s, len, - "SDL-Grafiktreiber.\n" - " \n" - "Dies ist ein SDL1.2-Grafiktreiber \n" - "mit Software-Rendering." - " \n" - "Die Leistung ist suboptimal und du \n" - "solltest ihn nur als letzte \n" - "Möglichkeit verwenden."); - break; - case MENU_LABEL_VIDEO_DRIVER_D3D: - snprintf(s, len, - "Direct3D-Grafiktreiber. \n" - " \n" - "Die Leistung bei software-gerenderten \n" - "Cores hängt von dem D3D-Treiber deiner \n" - "Grafikkarte ab."); - break; - case MENU_LABEL_VIDEO_DRIVER_EXYNOS: - snprintf(s, len, - "Exynos-G2D-Grafiktreiber. \n" - " \n" - "Dies ist ein Low-Level-Exynos-Grafiktreiber. \n" - "Er verwendet den G2D-Block in Samsung-Exynos-SoCs. \n" - "für Blitting-Operationen. \n" - " \n" - "Die Leistung bei software-gerendeten Cores sollte \n" - "optimal sein."); - break; - case MENU_LABEL_VIDEO_DRIVER_SUNXI: - snprintf(s, len, - "Sunxi-G2D-Grafiktreiber\n" - " \n" - "Dies ist ein Low-Level-Sunxi-Grafiktreiber. \n" - "Er verwendet den G2D-Block in Allwinnder-SoCs."); - break; - default: - snprintf(s, len, - "Momentaner Grafiktreiber."); - break; - } - break; - case MENU_LABEL_AUDIO_DSP_PLUGIN: - snprintf(s, len, - "Audio-DSP-Plugin.\n" - " Verarbeitet Audiodaten, bevor \n" - "sie zum Treiber gesendet werden." - ); - break; - case MENU_LABEL_AUDIO_RESAMPLER_DRIVER: - if (settings) - driver_hash = msg_hash_calculate(settings->audio.resampler); - - switch (driver_hash) - { - case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_SINC: - snprintf(s, len, - "Windowed-SINC-Implementierung."); - break; - case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_CC: - snprintf(s, len, - "Convoluted-Kosinus-Implementierung."); - break; - } - break; - case MENU_LABEL_VIDEO_SHADER_PRESET: - snprintf(s, len, - "Lade Shader-Voreinstellung. \n" - " \n" - " Lade eine " -#ifdef HAVE_CG - "Cg" -#endif -#ifdef HAVE_GLSL -#ifdef HAVE_CG - "/" -#endif - "GLSL" -#endif -#ifdef HAVE_HLSL -#if defined(HAVE_CG) || defined(HAVE_HLSL) - "/" -#endif - "HLSL" -#endif - "-Voreinstellung. \n" - "Das Menüshader-Menü wird entsprechend \n" - "aktualisiert." - " \n" - "Wenn der CGP komplexe Methoden verwendet, \n" - "(also andere als Quellskalierung mit dem \n" - "selben Faktor für X/Y) kann der im Menü \n" - "angezeigte Skalierungsfaktor inkorrekt sein." - ); - break; - case MENU_LABEL_VIDEO_SHADER_SCALE_PASS: - snprintf(s, len, - "Für diesen Durchgang skalieren. \n" - " \n" - "Der Skalierungsfaktor wird multipliziert, \n" - "d.h. 2x im ersten Durchgang und 2x im \n" - "zweiten Durchgang bedeute eine 4x Gesamt- \n" - "Skalierung." - " \n" - "Wenn es im letzten Durchgang einen \n" - "Skalierungsfaktor gibt, wird das Ergebnis \n" - "mit dem als 'Standardfilter' eingestellten \n" - "Filter auf die Bildschirmgröße gestreckt. \n" - " \n" - "Wenn 'Mir egal' eingestellt ist, wird \n" - "entweder einfache Skalierung or Vollbild- \n" - "Streckung verwendet - abhängig davon, ob \n" - "es der letzte Durchgang ist oder nicht." - ); - break; - case MENU_LABEL_VIDEO_SHADER_NUM_PASSES: - snprintf(s, len, - "Shader-Durchgänge. \n" - " \n" - "RetroArch erlaubt es dir, verschiedene Shader \n" - "in verschiedenen Durchgängen miteinander zu \n" - "kombinieren. \n" - " \n" - "Diese Option legt die Anzahl der Shader- \n" - "Durchgänge fest. Wenn du die Anzahl auf 0 setzt, \n" - "verwendest du einen 'leeren' Shader." - " \n" - "Die 'Standardfilter'-Option beeinflusst den \n" - "Streckungsfilter"); - break; - case MENU_LABEL_VIDEO_SHADER_PARAMETERS: - snprintf(s, len, - "Shader-Parameter. \n" - " \n" - "Verändert den momentanen Shader. Wird nicht in \n" - "der CGP/GLSLP-Voreinstellungs-Datei gespeichert."); - break; - case MENU_LABEL_VIDEO_SHADER_PRESET_PARAMETERS: - snprintf(s, len, - "Shader-Voreinstellung-Parameter. \n" - " \n" - "Verändert die Shader-Voreinstellung, die aktuell \n" - "im Menü aktiv ist." - ); - break; - /* - * FIXME: Some stuff still missing here. - */ - case MENU_LABEL_OSK_ENABLE: - snprintf(s, len, - "(De-)Aktiviere die Bildschirmtastatur."); - break; - case MENU_LABEL_AUDIO_MUTE: - snprintf(s, len, - "Audio stummschalten."); - break; - case MENU_LABEL_REWIND: - snprintf(s, len, - "Halte die Taste zum Zurückspulen gedrückt.\n" - " \n" - "Die Zurückspulfunktion muss eingeschaltet \n" - "sein."); - break; - case MENU_LABEL_EXIT_EMULATOR: - snprintf(s, len, - "Taste zum Beenden von RetroArch." -#if !defined(RARCH_MOBILE) && !defined(RARCH_CONSOLE) - "\nWenn du es stattdessen mittels SIGKILL \n" - "beendest, wird RetroArch nicht den RAM \n" - "sichern. Bei unixoiden Betriebssystemen \n" - "erlaubt SIGINT/SIGTERM ein sauberes \n" - "Beenden." -#endif - ); - break; - case MENU_LABEL_LOAD_STATE: - snprintf(s, len, - "Lädt einen Savestate."); - break; - case MENU_LABEL_SAVE_STATE: - snprintf(s, len, - "Speichert einen Savestate."); - break; - case MENU_LABEL_NETPLAY_FLIP_PLAYERS: - snprintf(s, len, - "Netplay-Spieler tauschen."); - break; - case MENU_LABEL_CHEAT_INDEX_PLUS: - snprintf(s, len, - "Erhöht den Cheat-Index.\n"); - break; - case MENU_LABEL_CHEAT_INDEX_MINUS: - snprintf(s, len, - "Verringert den Cheat-Index.\n"); - break; - case MENU_LABEL_SHADER_PREV: - snprintf(s, len, - "Wendet vorherigen Shader im Verzeichnis an."); - break; - case MENU_LABEL_SHADER_NEXT: - snprintf(s, len, - "Wendet nächsten Shader im Verzeichnis an."); - break; - case MENU_LABEL_RESET: - snprintf(s, len, - "Setzt den Content zurück.\n"); - break; - case MENU_LABEL_PAUSE_TOGGLE: - snprintf(s, len, - "Pausiert den Content und setzt ihn wieder fort."); - break; - case MENU_LABEL_CHEAT_TOGGLE: - snprintf(s, len, - "Schaltet den Cheat-Index ein und aus.\n"); - break; - case MENU_LABEL_HOLD_FAST_FORWARD: - snprintf(s, len, - "Halte den Knopf gedrückt, um vorzuspulen. Beim Loslassen \n" - "wird das Vorspulen beendet."); - break; - case MENU_LABEL_SLOWMOTION: - snprintf(s, len, - "Halte den Knopf gedrückt, um die Zeitlupe einzuschalten."); - break; - case MENU_LABEL_FRAME_ADVANCE: - snprintf(s, len, - "Frame-Advance, wenn der Content pausiert ist."); - break; - case MENU_LABEL_MOVIE_RECORD_TOGGLE: - snprintf(s, len, - "Aufnahme ein- und ausschalten."); - break; - case MENU_LABEL_L_X_PLUS: - case MENU_LABEL_L_X_MINUS: - case MENU_LABEL_L_Y_PLUS: - case MENU_LABEL_L_Y_MINUS: - case MENU_LABEL_R_X_PLUS: - case MENU_LABEL_R_X_MINUS: - case MENU_LABEL_R_Y_PLUS: - case MENU_LABEL_R_Y_MINUS: - snprintf(s, len, - "Achse für Analog-Stick (DualShock-artig).\n" - " \n" - "Zugewiesen wie gewöhnlich, wenn jedoch eine echte \n" - "Analogachse zugewiesen wird, kann sie auch wirklich \n" - "analog gelesen werden.\n" - " \n" - "Positive X-Achse ist rechts. \n" - "Positive Y-Achse ist unten."); - break; - default: - return -1; - } - - return 0; -} diff --git a/menu/intl/menu_hash_eo.c b/menu/intl/menu_hash_eo.c deleted file mode 100644 index 55a24f347e..0000000000 --- a/menu/intl/menu_hash_eo.c +++ /dev/null @@ -1,34 +0,0 @@ -/* RetroArch - A frontend for libretro. - * Copyright (C) 2011-2016 - 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 . - */ - -#include -#include - -#include "../menu_hash.h" - -int menu_hash_get_help_eo(uint32_t hash, char *s, size_t len) -{ - int ret = 0; - - switch (hash) - { - case 0: - default: - ret = -1; - break; - } - - return ret; -} diff --git a/menu/intl/menu_hash_es.c b/menu/intl/menu_hash_es.c deleted file mode 100644 index 7152a20f4d..0000000000 --- a/menu/intl/menu_hash_es.c +++ /dev/null @@ -1,1235 +0,0 @@ -/* RetroArch - A frontend for libretro. - * Copyright (C) 2011-2016 - 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 . - */ - -#include -#include - -#include -#include - -#include "../menu_hash.h" -#include "../../configuration.h" -#include "../../msg_hash.h" - -/* IMPORTANT: - * For non-english characters to work without proper unicode support, - * we need this file to be encoded in ISO 8859-1 (Latin1), not UTF-8. - * If you save this file as UTF-8, you'll break non-english characters - * (e.g. German "Umlauts" and Portugese diacritics). - */ -/* DO NOT REMOVE THIS. If it causes build failure, it's because you saved the file as UTF-8. Read the above comment. */ -extern const char force_iso_8859_1[sizeof("¿áéíÍñóºú")==9+1 ? 1 : -1]; - -int menu_hash_get_help_es(uint32_t hash, char *s, size_t len) -{ - uint32_t driver_hash = 0; - settings_t *settings = config_get_ptr(); - - /* If this one throws errors, stop sledgehammering square pegs into round holes and */ - /* READ THE COMMENTS at the top of the file. */ - (void)sizeof(force_iso_8859_1); - - switch (hash) - { - case MENU_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC: - { - /* Work around C89 limitations */ - char u[501]; - char t[501]; - - strlcpy(t, - "RetroArch utiliza un formato único para \n" - "sincronizar vídeo y sonido que necesita \n" - "calibrarse con la frecuencia de \n" - "actualización de tu monitor para obtener \n" - "el mejor rendimiento. \n" - " \n" - "Si notas cortes de sonido o en la imagen,\n" - "lo normal es que necesites calibrar estos\n" - "ajustes. Aquí van algunas opciones:\n" - " \n", sizeof(t)); - snprintf(u, sizeof(u), - "a) Ve a '%s' -> '%s' y activa\n" - "'Vídeo por hilos'. En este modo la tasa\n" - "de refresco es irrelevante, habrá más fps,\n" - "'Vídeo multinúcleo'. En este modo la \n" - "frecuencia es irrelevante, habrá más fps,\n" - "pero la imagen podría ser menos fluida.\n" - "b) Ve a '%s' -> '%s' y busca\n" - "'%s'. Deja que se ejecute durante\n" - "2048 fotogramas y selecciona Aceptar.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_REFRESH_RATE_AUTO) - ); - strlcat(s, t, len); - strlcat(s, u, len); - } - break; - case MENU_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC: - snprintf(s, len, - "Para escanear contenidos ve a '%s' \n" - "y selecciona '%s' o \n" - "'%s'.\n" - " \n" - "Esto comparará los archivos con las entradas en \n" - "la base de datos. Si hay una coincidencia, \n" - "añadirá una entrada en una colección.\n" - " \n" - "Entonces podrás acceder fácilmente al contenido\n" - "si vas a '%s' ->\n" - "'%s'\n" - "en vez de tener que pasar por el navegador \n" - "de archivos constantemente.\n" - " \n" - "NOTA: El contenido de algunos núcleos podría\n" - "no ser localizable. Entre los ejemplos están\n" - "PlayStation, MAME, FBA, y puede que otros." - , - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ADD_CONTENT_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_DIRECTORY), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_FILE), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CONTENT_COLLECTION_LIST) - ); - break; - case MENU_LABEL_VALUE_MENU_CONTROLS_PROLOG: - snprintf(s, len, - "Puedes usar estos controles en tu mando\n" - "o teclado para controlar el menú: \n" - " \n" - ); - break; - case MENU_LABEL_VALUE_EXTRACTING_PLEASE_WAIT: - strlcpy(s, "Extrayendo, espera, por favor...\n", len); - break; - case MENU_LABEL_WELCOME_TO_RETROARCH: - snprintf(s, len, - "Bienvenido a RetroArch\n" - "\n" - "Para más información ve al menú \n" - "de Ayuda.\n" - ); - break; - case MENU_LABEL_INPUT_DRIVER: - if (settings) - driver_hash = msg_hash_calculate(settings->input.driver); - - switch (driver_hash) - { - case MENU_LABEL_INPUT_DRIVER_UDEV: - { - /* Work around C89 limitations */ - char u[501]; - char t[501]; - - strlcpy(t, - "Controlador de entrada udev. \n" - " \n" - "Este controlador puede funcionar sin X. \n" - " \n" - "Utiliza la API más reciente para joypads \n" - "evdec para dar compatibilidad con joysticks. \n" - "Permite conexión en caliente y force \n" - "feedback (si lo admite el dispositivo). \n", - sizeof(t)); - strlcpy(u, - " \n" - "El controlador lee los eventos evdev para \n" - "dar compatibilidad con teclados. También \n" - "es compatible con retrollamadas de teclado, \n" - "ratones y pantallas táctiles. \n" - " \n" - "La mayoría de las distros tienen los nodos \n" - "/dev/input en modo root-only (modo 600). \n" - "Puedes configurar una regla udev que los haga \n" - "accesibles fuera de la raíz.", sizeof(u) - ); - - strlcat(s, t, len); - strlcat(s, u, len); - } - break; - case MENU_LABEL_INPUT_DRIVER_LINUXRAW: - snprintf(s, len, - "Controlador de entrada linuxraw. \n" - " \n" - "Este controlador necesita de un TTY activo. \n" - "Los eventos de teclado se leen directamente \n" - "desde el TTY, lo que es más simple pero no tan \n" - "flexible como udev. \n" - "No es compatible con ratones, etc. \n" - " \n" - "Este controlador utiliza la antigua API de \n" - "joysticks (/dev/input/js*)."); - break; - default: - snprintf(s, len, - "Controlador de entrada.\n" - " \n" - "El controlador de vídeo podría forzar \n" - "el uso de un controlador de entrada \n" - "distinto."); - break; - } - break; - case MENU_LABEL_LOAD_CONTENT: - snprintf(s, len, - "Cargar contenido. \n" - "Buscar contenido. \n" - " \n" - "Para cargar contenidos necesitas \n" - "un 'núcleo' y un archivo de contenido.\n" - " \n" - "Para controlar el lugar donde el menú \n" - "empieza a buscar contenidos, cambia \n" - "la opción 'Carpeta del navegador de \n" - "archivos'. En caso de que no esté \n" - "configurada, empezará desde la raíz.\n" - " \n" - "El navegador filtrará las extensiones \n" - "del último núcleo seleccionado en \n" - "'Cargar núcleo' y lo utilizará al \n" - "cargar un contenido." - ); - break; - case MENU_LABEL_CORE_LIST: - snprintf(s, len, - "Cargar núcleo. \n" - " \n" - "Busca una implementación de núcleo \n" - "para libretro. El navegador empezará \n" - "desde la ruta de tu carpeta de núcleos.\n" - "Si está en blanco, empezará desde \n" - "la raíz.\n" - " \n" - "Si la carpeta de núcleos es una carpeta,\n" - "el menú la utilizará como carpeta \n" - "base. Si la carpeta de núcleos es una \n" - "ruta completa, empezará en la carpeta \n" - "donde se encuentre el archivo."); - break; - case MENU_LABEL_LOAD_CONTENT_HISTORY: - snprintf(s, len, - "Cargar contenido del historial. \n" - " \n" - "Cuando se cargan contenidos, estos y \n" - "las combinaciones de núcleos de libretro \n" - "se guardan en el historial. \n" - " \n" - "El historial se guarda en un archivo en la \n" - "misma carpeta que el archivo de configura- \n" - "ción de RetroArch. Si no se ha cargado un \n" - "archivo de configuración al iniciar, no se \n" - "guardará ni cargará el historial, y la \n" - "opción no existirá en el menú principal." - ); - break; - case MENU_LABEL_VIDEO_DRIVER: - if (settings) - driver_hash = msg_hash_calculate(settings->video.driver); - - switch (driver_hash) - { - case MENU_LABEL_VIDEO_DRIVER_GL: - snprintf(s, len, - "Controlador de vídeo OpenGL. \n" - " \n" - "Este controlador permite que los núcleos \n" - "libretro GL se utilicen, además de las \n" - "implementaciones renderizadas por\n" - "software del núcleo.\n" - " \n" - "El rendimiento de las implementaciones \n" - "por software y libretro GL dependen \n" - "del controlador GL que tenga tu \n" - "tarjeta gráfica."); - break; - case MENU_LABEL_VIDEO_DRIVER_SDL2: - snprintf(s, len, - "Controlador de vídeo SDL 2.\n" - " \n" - "Este es un controlador de vídeo por \n" - "software SDL 2.\n" - " \n" - "El rendimiento para las implementaciones \n" - "libretro por software depende de la \n" - "implementación SDL de tu plataforma."); - break; - case MENU_LABEL_VIDEO_DRIVER_SDL1: - snprintf(s, len, - "Controlador de vídeo SDL.\n" - " \n" - "Este es un controlador de vídeo por \n" - "software SDL 1.2.\n" - " \n" - "Su rendimiento es considerado inferior \n" - "a lo óptimo. Utilízalo únicamente como \n" - "último recurso."); - break; - case MENU_LABEL_VIDEO_DRIVER_D3D: - snprintf(s, len, - "Controlador de vídeo Direct3D. \n" - " \n" - "El rendimiento de los núcleos que \n" - "rendericen por software dependerá \n" - "del controlador D3D de tu tarjeta \n" - "gráfica."); - break; - case MENU_LABEL_VIDEO_DRIVER_EXYNOS: - snprintf(s, len, - "Controlador de vídeo Exynos-G2D. \n" - " \n" - "Este es un controlador de vídeo Exynos \n" - "de bajo nivel. Utiliza el bloque G2D \n" - "del SoC Exynos de Samsung para las \n" - "operaciones de blit. \n" - " \n" - "El rendimiento de los núcleos \n" - "renderizados por software debería \n" - "ser óptimo."); - break; - case MENU_LABEL_VIDEO_DRIVER_SUNXI: - snprintf(s, len, - "Controlador de vídeo Sunxi-G2D. \n" - " \n" - "Este es un controlador de vídeo Sunxi \n" - "de bajo nivel. Utiliza el bloque G2D \n" - "de todos los SoC Allwinner."); - break; - default: - snprintf(s, len, - "Controlador de vídeo actual."); - break; - } - break; - case MENU_LABEL_AUDIO_DSP_PLUGIN: - snprintf(s, len, - "Plugin de sonido DSP.\n" - "Procesa el sonido antes de enviarlo \n" - "al controlador." - ); - break; - case MENU_LABEL_AUDIO_RESAMPLER_DRIVER: - if (settings) - driver_hash = msg_hash_calculate(settings->audio.resampler); - - switch (driver_hash) - { - case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_SINC: - snprintf(s, len, - "Implementación SINC en ventana."); - break; - case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_CC: - snprintf(s, len, - "Implementación de cosenos complejos."); - break; - } - break; - case MENU_LABEL_VIDEO_SHADER_PRESET: - snprintf(s, len, - "Cargar preajustes de shaders. \n" - " \n" - " Carga directamente un preajuste " -#ifdef HAVE_CG - "Cg" -#endif -#ifdef HAVE_GLSL -#ifdef HAVE_CG - "/" -#endif - "GLSL" -#endif -#ifdef HAVE_HLSL -#if defined(HAVE_CG) || defined(HAVE_HLSL) - "/" -#endif - "HLSL" -#endif - ". \n" - "El menú de shaders se actualizará. \n" - " \n" - "Si el CGP utiliza métodos de escalado \n" - "complejos (por ejemplo, escalado de \n" - "origen, el mismo factor para X/Y), podría \n" - "no mostrar un factor de escalado correcto \n" - "en el menú." - ); - break; - case MENU_LABEL_VIDEO_SHADER_SCALE_PASS: - snprintf(s, len, - "La escala de esta pasada. \n" - " \n" - "El factor de escala es acumulativo, \n" - "por ejemplo: 2x para el primer pase y \n" - "2x para el segundo dará una escala \n" - "total de 4x. \n" - " \n" - "Si el último pase tiene un factor de \n" - "escala, el resultado se estirará por \n" - "toda la pantalla con el filtro espe- \n" - "cificado en 'Filtro predeterminado'. \n" - " \n" - "Si has seleccionado 'No importa', se \n" - "utilizará o bien la escala 1x o se \n" - "estirará a pantalla completa en función \n" - "de si es el último pase o no." - ); - break; - case MENU_LABEL_VIDEO_SHADER_NUM_PASSES: - snprintf(s, len, - "Pases de shaders. \n" - " \n" - "RetroArch permite mezclar diversos shaders \n" - "con pasadas arbitrarias, filtros persona- \n" - "lizados de hardware y factores de escala. \n" - " \n" - "Esta opción especifica la cantidad de pasadas \n" - "de shaders a utilizar. Si seleccionas 0 y \n" - "luego 'Aplicar cambios en shaders', \n" - "utilizarás un shader 'en blanco'. \n" - " \n" - "La opción filtro predeterminado afectará \n" - "al filtro de estiramiento."); - break; - case MENU_LABEL_VIDEO_SHADER_PARAMETERS: - snprintf(s, len, - "Parámetros de shaders. \n" - " \n" - "Modifica directamente el shader actual. \n" - "No se guardará en el preajuste CGP/GLSLP."); - break; - case MENU_LABEL_VIDEO_SHADER_PRESET_PARAMETERS: - snprintf(s, len, - "Parámetros del preajuste de shaders. \n" - " \n" - "Modifica el preajuste de shaders que \n" - "se encuentra actualmente en el menú." - ); - break; - case MENU_LABEL_VIDEO_SHADER_PASS: - snprintf(s, len, - "Ruta al shader. \n" - " \n" - "Todos los shaders deben ser del \n" - "mismo tipo (por ejemplo: CG, GLSL \n" - "o HLSL). \n" - " \n" - "Modifica la carpeta de shaders para \n" - "indicar la ruta en la que el navegador \n" - "comenzará a buscar shaders." - ); - break; - case MENU_LABEL_CONFIG_SAVE_ON_EXIT: - snprintf(s, len, - "Guarda la configuración al salir.\n" - "Es útil para el menú, ya que los \n" - "ajustes pueden ser modificados. \n" - "Sobrescribirá la configuración. \n" - " \n" - "No se preservarán los #include \n" - "y los comentarios. \n" - " \n" - "El archivo de configuración se \n" - "considera inmutable por diseño \n" - "ya que es probable que el usuario \n" - "lo controle, y no debería ser \n" - "sobrescrito sin que el usuario \n" - "no se entere." -#if defined(RARCH_CONSOLE) || defined(RARCH_MOBILE) - "\nSin embargo, no suele ser el caso \n" - "en consolas, donde no es posible \n" - "examinar el archivo de configuración \n" - "de forma manual." -#endif - ); - break; - case MENU_LABEL_VIDEO_SHADER_FILTER_PASS: - snprintf(s, len, - "Filtro de hardware para esta pasada. \n" - " \n" - "Si se ha seleccionado 'No importa', \n" - "se utilizará el filtro predeterminado." - ); - break; - case MENU_LABEL_AUTOSAVE_INTERVAL: - snprintf(s, len, - "Guarda automáticamente la SRAM \n" - "no volátil en intervalos regulares.\n" - " \n" - "Esta opción está desactivada por \n" - "defecto a menos que se haya configurado \n" - "lo contrario. El intervalo se mide \n" - "en segundos. \n" - " \n" - "Si utlizas 0, desactivarás el \n" - "guardado automático."); - break; - case MENU_LABEL_INPUT_BIND_DEVICE_TYPE: - snprintf(s, len, - "Tipo de dispositivo de entrada. \n" - " \n" - "Selecciona el tipo de dispositivo a \n" - "utilizar. Es relevante para el núcleo \n" - "de libretro." - ); - break; - case MENU_LABEL_LIBRETRO_LOG_LEVEL: - snprintf(s, len, - "Ajusta el nivel de registro de los \n" - "núcleos de libretro (GET_LOG_INTERFACE). \n" - " \n" - " Si un nivel de registro indicado por \n" - " un núcleo de libretro está por debajo \n" - " del nivel indicado en libretro_log, \n" - " será ignorado.\n" - " \n" - " Los registros DEBUG siempre son ignorados \n" - " a menos que esté activado el modo \n" - " de verbosidad (--verbose).\n" - " \n" - " DEBUG = 0\n" - " INFO = 1\n" - " WARN = 2\n" - " ERROR = 3" - ); - break; - case MENU_LABEL_STATE_SLOT_INCREASE: - case MENU_LABEL_STATE_SLOT_DECREASE: - snprintf(s, len, - "Ranuras de guardados rápidos.\n" - " \n" - " Si se selecciona la ranura 0, el nombre \n" - " del guardado rápido es *.state \n" - " (o lo que esté definido en la línea \n" - "de comandos).\n" - "Si la ranura es != 0, la ruta será (path)(d), \n" - "siendo (d) el número de ranura."); - break; - case MENU_LABEL_SHADER_APPLY_CHANGES: - snprintf(s, len, - "Aplicar cambios en shaders. \n" - " \n" - "Después de cambiar los ajustes de shaders, \n" - "utiliza esta opción para aplicar los \n" - "cambios. \n" - " \n" - "Los cambios en los shaders es una \n" - "operación que ocupa bastante memoria, \n" - "así que han de hacerse de forma \n" - "explícita. \n" - " \n" - "Al aplicar shaders, se guarda su configuración \n" - "a un archivo temporal (menu.cgp ormenu.glslp) \n" - "y se cargan. El archivo persistirá al \n" - "abandonar RetroArch. El archivo se guarda en \n" - "la carpeta Shader." - ); - break; - case MENU_LABEL_INPUT_BIND_DEVICE_ID: - snprintf(s, len, - "Dispositivo de entrada. \n" - " \n" - "Selecciona el mando a utilizar por \n" - "el usuario N. \n" - "El nombre del mando está disponible." - ); - break; - case MENU_LABEL_MENU_TOGGLE: - snprintf(s, len, - "Muestra u oculta el menú."); - break; - case MENU_LABEL_GRAB_MOUSE_TOGGLE: - snprintf(s, len, - "Permite o no capturar el ratón.\n" - " \n" - "Al capturar el ratón, RetroArch lo oculta \n" - "y mantiene el puntero del ratón dentro de \n" - "la ventana para que la entrada relativa \n" - "del ratón funcione mejor."); - break; - case MENU_LABEL_DISK_NEXT: - snprintf(s, len, - "Rota entre las imágenes de disco. \n" - "Utiliza esta opción después de \n" - "expulsar un disco. \n" - " \n" - " Termina la operación volviendo \n" - " a conmutar el botón de expulsión."); - break; - case MENU_LABEL_VIDEO_FILTER: -#ifdef HAVE_FILTERS_BUILTIN - snprintf(s, len, - "Filtro de vídeo basado en la CPU."); -#else - snprintf(s, len, - "Filtro de vídeo basado en la CPU.\n" - " \n" - "Ruta a una librería dinámica."); -#endif - break; - case MENU_LABEL_AUDIO_DEVICE: - snprintf(s, len, - "Anula el dispositivo de sonido \n" - "predeterminado que utiliza el \n" - "controlador de sonido.\n" - "Esta opción depende del contro- \n" - "lador. Por ejemplo:\n" -#ifdef HAVE_ALSA - " \n" - "ALSA necesita un dispositivo PCM." -#endif -#ifdef HAVE_OSS - " \n" - "OSS necesita una ruta (por ejemplo: \n" - "/dev/dsp)." -#endif -#ifdef HAVE_JACK - " \n" - "JACK necesita nombres de puertos \n" - "(por ejemplo: system:playback1\n" - ",system:playback_2)." -#endif -#ifdef HAVE_RSOUND - " \n" - "RSound necesita una dirección IP \n" - "de un servidor RSound." -#endif - ); - break; - case MENU_LABEL_DISK_EJECT_TOGGLE: - snprintf(s, len, - "Alterna el botón de expulsión \n" - "de discos.\n" - " \n" - "Se utiliza para contenidos \n" - "que utilicen varios discos."); - break; - case MENU_LABEL_ENABLE_HOTKEY: - snprintf(s, len, - "Activa otras teclas rápidas.\n" - " \n" - "Si esta tecla rápida está asignada a un \n" - "teclado, un botón o un eje de un joystick, \n" - "el resto de teclas rápidas se desactivarán \n" - "a menos que esta tecla se mantenga pulsada \n" - "al mismo tiempo. \n" - " \n" - "Esto sirve para implementaciones centradas \n" - "en RETRO_KEYBOARD, que ocupan una gran \n" - "porción del teclado y no es una buena idea \n" - "que las teclas rápidas interfieran con \n" - "el funcionamiento normal."); - break; - case MENU_LABEL_REWIND_ENABLE: - snprintf(s, len, - "Activa el rebobinado.\n" - " \n" - "Esto consume rendimiento, así que \n" - "está desactivado por defecto."); - break; - case MENU_LABEL_LIBRETRO_DIR_PATH: - snprintf(s, len, - "Carpeta de núcleos. \n" - " \n" - "Una carpeta donde se buscarán las \n" - "implementaciones de núcleos libretro."); - break; - case MENU_LABEL_VIDEO_REFRESH_RATE_AUTO: - { - /* Work around C89 limitations */ - char u[501]; - char t[501]; - - strlcpy(t, - "Frecuencia de actualización automática.\n" - " \n" - "La frecuencia de actualización precisa del \n" - "monitor (en Hz). Se utiliza para calcular \n" - "la frecuencia de entrada de sonido con esta \n" - "fórmula: \n" - " \n" - "audio_input_rate = veloc. de entrada de juego \n" - "* frecuencia de actualización de pantalla / \n" - "frecuencia de actualización de juego \n" - " \n", sizeof(t)); - strlcpy(u, - "Si la implementación no indica un valor, se \n" - "asumirá de forma predeterminada el sistema \n" - "NTSC por compatibilidad.\n" - " \n" - "Este valor debería ser lo más similar a 60Hz \n" - "para evitar cambios en el tono. Si tu \n" - "monitor no funciona a 60Hz o similar, \n" - "desactiva la sincronía vertical y deja \n" - "esta opción en su valor predeterminado.", sizeof(u)); - strlcat(s, t, len); - strlcat(s, u, len); - } - break; - case MENU_LABEL_VIDEO_ROTATION: - snprintf(s, len, - "Fuerza una rotación concreta \n" - "de la pantalla.\n" - " \n" - "La rotación se añade a las rotaciones \n" - "que indique el núcleo libretro (ver \n" - "Permitir rotación de vídeo)."); - break; - case MENU_LABEL_VIDEO_SCALE: - snprintf(s, len, - "Resolución en pantalla completa.\n" - " \n" - "Si se indica 0, se utilizará la \n" - "resolución del entorno.\n"); - break; - case MENU_LABEL_FASTFORWARD_RATIO: - snprintf(s, len, - "Proporción de aceleración." - " \n" - "Indica la velocidad máxima a la que \n" - "se ejecutará el contenido mientras \n" - "es acelerado.\n" - " \n" - " (Por ejemplo, 5.0 para un contenido \n" - "a 60 FPS => Máximo de 300 FPS).\n" - " \n" - "RetroArch pasará a segundo plano \n" - "para asegurarse de que no se supere \n" - "la velocidad máxima. Este límite \n" - "no es completamente preciso."); - break; - case MENU_LABEL_VIDEO_MONITOR_INDEX: - snprintf(s, len, - "Monitor preferido.\n" - " \n" - "0 (predeterminado) significa que no hay \n" - "preferencia por un monitor en concreto, \n" - "y de 1 en adelante (siendo 1 el primer \n" - "monitor) sugiere a RetroArch que \n" - "utilice ese monitor específico."); - break; - case MENU_LABEL_VIDEO_CROP_OVERSCAN: - snprintf(s, len, - "Obliga a recortar los fotogramas \n" - "con overscan.\n" - " \n" - "El comportamiento exacto de esta \n" - "opción depende de la implementación \n" - "del núcleo."); - break; - case MENU_LABEL_VIDEO_SCALE_INTEGER: - snprintf(s, len, - "Solo escala el vídeo con números \n" - "enteros.\n" - " \n" - "El tamaño base depende de la geometría \n" - "que indique el sistema y de la \n" - "proporción de aspecto.\n" - " \n" - "Si no se ha configurado la opción \n" - "Forzar proporción, los valores X/Y \n" - "se escalarán de forma independiente \n" - "según números enteros."); - break; - case MENU_LABEL_AUDIO_VOLUME: - snprintf(s, len, - "Volumen de sonido expresado en dB.\n" - " \n" - "0 dB es el volumen normal, sin ganancia \n" - "aplicada. La ganancia se puede controlar \n" - "en tiempo real con los botones de \n" - "Subir volumen / Bajar volumen."); - break; - case MENU_LABEL_AUDIO_RATE_CONTROL_DELTA: - snprintf(s, len, - "Control de la frecuencia de sonido.\n" - " \n" - "Si seleccionas 0, desactivarás el control \n" - "de la frecuencia. Cualquier otro valor \n" - "cambiará el delta de control de la \n" - "frecuencia de sonido.\n" - " \n" - "Define cuánta frecuencia de entrada puede \n" - "ajustarse de forma dinámica.\n" - " \n" - " La frecuencia de entrada se define como: \n" - " frecuencia de entrada * (1.0 +/- \n" - "(delta de control de frecuencia))"); - break; - case MENU_LABEL_AUDIO_MAX_TIMING_SKEW: - snprintf(s, len, - "Variación máxima en la sincronía de \n" - "sonido.\n" - " \n" - "Define la variación máxima de la \n" - "frecuencia de entrada. Podrías aumentar \n" - "el valor para cambiar la sincronía, por \n" - "ejemplo, si ejecutas núcleos PAL en \n" - "monitores NTSC, a cambio de tener un \n" - "tono de sonido impreciso.\n" - " \n" - " La frecuencia de entrada se define como: \n" - " frecuencia de entrada * (1.0 +/- \n" - "(variación máxima de sincronía))"); - break; - case MENU_LABEL_OVERLAY_NEXT: - snprintf(s, len, - "Cambia a la siguiente superposición.\n" - " \n" - "Se expande alrededor."); - break; - case MENU_LABEL_LOG_VERBOSITY: - snprintf(s, len, - "Activa o desactiva el nivel de \n" - "verbosidad del frontend."); - break; - case MENU_LABEL_VOLUME_UP: - snprintf(s, len, - "Aumenta el volumen del sonido."); - break; - case MENU_LABEL_VOLUME_DOWN: - snprintf(s, len, - "Disminuye el volumen del sonido."); - break; - case MENU_LABEL_VIDEO_DISABLE_COMPOSITION: - snprintf(s, len, - "Desactiva por la fuerza la composición.\n" - "Actualmente solo funciona en \n" - "Windows Vista/7."); - break; - case MENU_LABEL_PERFCNT_ENABLE: - snprintf(s, len, - "Activa o desactiva los contadores \n" - "de rendimiento del frontend."); - break; - case MENU_LABEL_SYSTEM_DIRECTORY: - snprintf(s, len, - "Carpeta de sistemas. \n" - " \n" - "Asigna la carpeta 'system'.\n" - "Los núcleos pueden buscar dentro \n" - "de ella para cargar BIOS, \n" - "configuraciones específicas para \n" - "un sistema, etc."); - break; - case MENU_LABEL_SAVESTATE_AUTO_SAVE: - snprintf(s, len, - "Guarda automáticamente un guardado rápido \n" - "al terminar la ejecución de RetroArch.\n" - " \n" - "RetroArch cargará automáticamente cualquier \n" - "guardado rápido que se encuentre en esa ruta \n" - "al arrancar si la opción 'Cargar guardado \n" - "rápido automáticamente' está activada."); - break; - case MENU_LABEL_VIDEO_THREADED: - snprintf(s, len, - "Utilizar un controlador de vídeo \n" - "por hilos.\n" - " \n" - "Esta opción podría mejorar el rendimiento \n" - "a costa de ganar retraso y perder fluidez \n" - "de vídeo."); - break; - case MENU_LABEL_VIDEO_VSYNC: - snprintf(s, len, - "Sincronía vertical para vídeo.\n"); - break; - case MENU_LABEL_VIDEO_HARD_SYNC: - snprintf(s, len, - "Intenta sincronizar la CPU y la GPU \n" - "de una forma más estricta.\n" - " \n" - "Puede reducir el retraso a costa \n" - "de perder rendimiento."); - break; - case MENU_LABEL_REWIND_GRANULARITY: - snprintf(s, len, - "Nivel de detalle del rebobinado.\n" - " \n" - "Cuando se rebobina un número determinado \n" - "de fotogramas, puedes rebobinar varios \n" - "fotogramas a la vez, aumentando la \n" - "velocidad de rebobinado."); - break; - case MENU_LABEL_SCREENSHOT: - snprintf(s, len, - "Capturar la pantalla."); - break; - case MENU_LABEL_VIDEO_FRAME_DELAY: - snprintf(s, len, - "Ajusta la cantidad de retraso en \n" - "milisegundos después de la sincronía \n" - "vertical antes de ejecutar el núcleo.\n" - "\n" - "Puede reducir el retraso a costa de \n" - "aumentar la probabilidad de perder \n" - "fluidez.\n" - " \n" - "El valor máximo es 15."); - break; - case MENU_LABEL_VIDEO_HARD_SYNC_FRAMES: - snprintf(s, len, - "Ajusta la cantidad de fotogramas \n" - "que puede adelantar la CPU a la GPU \n" - "al utilizar 'Sincronía estricta \n" - "de CPU'.\n" - " \n" - "El valor máximo es 3.\n" - " \n" - " 0: Sincroniza inmediatamente a GPU.\n" - " 1: Sincroniza con el fotograma anterior.\n" - " 2: Etc..."); - break; - case MENU_LABEL_VIDEO_BLACK_FRAME_INSERTION: - snprintf(s, len, - "Introduce un fotograma negro \n" - "entre fotogramas.\n" - " \n" - "Es útil para los monitores que \n" - "funcionan a 120 Hz y quieren jugar \n" - "a material a 60 Hz eliminando el \n" - "ghosting.\n" - " \n" - "La frecuencia de actualización de vídeo \n" - "aún debe configurarse como si utilizaras \n" - "un monitor de 60 Hz (divide la frecuencia \n" - "de actualización entre 2)."); - break; - case MENU_LABEL_RGUI_SHOW_START_SCREEN: - snprintf(s, len, - "Muestra la pantalla de inicio en el menú.\n" - "Se desactiva automáticamente cuando se \n" - "ha visto por primera vez.\n" - " \n" - "Esta opción solo se actualiza dentro \n" - "de la configuración si 'Guardar \n" - "configuración al salir' está activado.\n"); - break; - case MENU_LABEL_CORE_SPECIFIC_CONFIG: - snprintf(s, len, - "Carga un archivo de configuración \n" - "concreto en función del núcleo \n" - "que se vaya a utilizar.\n"); - break; - case MENU_LABEL_VIDEO_FULLSCREEN: - snprintf(s, len, - "Activa o desactiva el modo \n" - "en pantalla completa."); - break; - case MENU_LABEL_BLOCK_SRAM_OVERWRITE: - snprintf(s, len, - "Impide que la SRAM sea sobrescrita \n" - "mientras se carga un guardado rápido.\n" - " \n" - "Podría provocar defectos en los \n" - "juegos."); - break; - case MENU_LABEL_PAUSE_NONACTIVE: - snprintf(s, len, - "Pausa el juego cuando la ventana \n" - "pasa a estar en segundo plano."); - break; - case MENU_LABEL_VIDEO_GPU_SCREENSHOT: - snprintf(s, len, - "Si es posible, las capturas de \n" - "pantalla se realizan del material \n" - "pos-shaders de GPU."); - break; - case MENU_LABEL_SCREENSHOT_DIRECTORY: - snprintf(s, len, - "Carpeta de capturas de pantalla. \n" - " \n" - "En esta carpeta se guardarán \n" - "las capturas de pantalla." - ); - break; - case MENU_LABEL_VIDEO_SWAP_INTERVAL: - snprintf(s, len, - "Intervalo de cambio de la \n" - "sincronía vertical.\n" - " \n" - "Utiliza un intervalo personalizado para \n" - "la sincronía vertical. Utiliza este \n" - "parámetro para reducir a la mitad \n" - "la frecuencia de actualización \n" - "del monitor."); - break; - case MENU_LABEL_SAVEFILE_DIRECTORY: - snprintf(s, len, - "Carpeta de partidas guardadas. \n" - " \n" - "Almacena todas las partidas guardadas \n" - "(*.srm) en esta carpeta. Incluye los \n" - "archivos relacionados, como .bsv, .rt, \n" - ".psrm, etcétera.\n" - " \n" - "Esta carpeta será ignorada si se \n" - "utilizan explícitamente las opciones por \n" - "línea de comandos."); - break; - case MENU_LABEL_SAVESTATE_DIRECTORY: - snprintf(s, len, - "Carpeta de guardados rápidos. \n" - " \n" - "Almacena todos los guardados rápidos \n" - "(*.state) en esta carpeta.\n" - " \n" - "Esta carpeta será ignorada si se \n" - "utilizan explícitamente las opciones por \n" - "línea de comandos."); - break; - case MENU_LABEL_ASSETS_DIRECTORY: - snprintf(s, len, - "Carpeta de recursos. \n" - " \n" - "Esta ubicación es donde las interfaces \n" - "de menús buscan de forma predeterminada \n" - "los recursos a cargar, etc."); - break; - case MENU_LABEL_DYNAMIC_WALLPAPERS_DIRECTORY: - snprintf(s, len, - "Carpeta de fondos dinámicos de pantalla. \n" - " \n" - "Aquí se almacenan los fondos de pantalla \n" - "que el menú cargará de forma dinámica \n" - "según el contexto."); - break; - case MENU_LABEL_SLOWMOTION_RATIO: - snprintf(s, len, - "Cantidad de velocidad reducida." - " \n" - "Al reducir la velocidad, el contenido \n" - "se ralentizará según este factor."); - break; - case MENU_LABEL_INPUT_AXIS_THRESHOLD: - snprintf(s, len, - "Define el margen de los ejes.\n" - " \n" - "Indica la distancia mínima que debe \n" - "recorrer un eje para que provoque \n" - "una pulsación del botón.\n" - "Los valores posibles son [0.0, 1.0]."); - break; - case MENU_LABEL_INPUT_TURBO_PERIOD: - snprintf(s, len, - "Período de turbo.\n" - " \n" - "Describe la velocidad con la que se \n" - "pulsan los botones en el modo turbo." - ); - break; - case MENU_LABEL_INPUT_AUTODETECT_ENABLE: - snprintf(s, len, - "Activa la autoconfiguración de \n" - "entrada. \n" - " \n" - "Intentará configurar de forma \n" - "automática los mandos que se \n" - "conecten en cualquier momento, \n" - "como el sistema Plug-and-play."); - break; - case MENU_LABEL_CAMERA_ALLOW: - snprintf(s, len, - "Permite o no el acceso a la cámara \n" - "por parte de los núcleos."); - break; - case MENU_LABEL_LOCATION_ALLOW: - snprintf(s, len, - "Permite o no los servicios de \n" - "localización por parte de los núcleos."); - break; - case MENU_LABEL_TURBO: - snprintf(s, len, - "Permite usar el turbo.\n" - " \n" - "Si mantienes pulsado el botón de turbo \n" - "mientras pulsas otro botón, este último \n" - "entrará en un modo turbo en el que el \n" - "estado del botón se modula mediante una \n" - "señal periódica. \n" - " \n" - "La modulación se detiene cuando se deja \n" - "de pulsar el botón original (no el botón \n" - "de turbo)."); - break; - case MENU_LABEL_OSK_ENABLE: - snprintf(s, len, - "Activa o desactiva el teclado \n" - "en pantalla."); - break; - case MENU_LABEL_AUDIO_MUTE: - snprintf(s, len, - "Silencia o no el sonido."); - break; - case MENU_LABEL_REWIND: - snprintf(s, len, - "Mantén pulsado este botón para rebobinar.\n" - " \n" - "Para que este botón funcione, debes tener \n" - "activada la opción de rebobinar."); - break; - case MENU_LABEL_EXIT_EMULATOR: - snprintf(s, len, - "Asigna una tecla para abandonar \n" - "RetroArch limpiamente." -#if !defined(RARCH_MOBILE) && !defined(RARCH_CONSOLE) - "\nSi cierras el programa con \n" - "cualquier forma brusca (SIGKILL, \n" - "etc.) no se guardará la RAM, etc. \n" - "En sistemas Unix, SIGINT/SIGTERM \n" - "permite un cierre limpio." -#endif - ); - break; - case MENU_LABEL_LOAD_STATE: - snprintf(s, len, - "Carga el guardado rápido."); - break; - case MENU_LABEL_SAVE_STATE: - snprintf(s, len, - "Guarda rápidamente la partida."); - break; - case MENU_LABEL_NETPLAY_FLIP_PLAYERS: - snprintf(s, len, - "Cambia los usuarios en red."); - break; - case MENU_LABEL_CHEAT_INDEX_PLUS: - snprintf(s, len, - "Aumenta el índice de trucos.\n"); - break; - case MENU_LABEL_CHEAT_INDEX_MINUS: - snprintf(s, len, - "Disminuye el índice de trucos.\n"); - break; - case MENU_LABEL_SHADER_PREV: - snprintf(s, len, - "Aplica el shader anterior de la carpeta."); - break; - case MENU_LABEL_SHADER_NEXT: - snprintf(s, len, - "Aplica el siguiente shader de la carpeta."); - break; - case MENU_LABEL_RESET: - snprintf(s, len, - "Reinicia el contenido.\n"); - break; - case MENU_LABEL_PAUSE_TOGGLE: - snprintf(s, len, - "Alterna el estado en pausa."); - break; - case MENU_LABEL_CHEAT_TOGGLE: - snprintf(s, len, - "Alterna el índice de trucos.\n"); - break; - case MENU_LABEL_HOLD_FAST_FORWARD: - snprintf(s, len, - "Mantén pulsado este botón para avanzar \n" - "rápidamente. Suéltalo para desactivar \n" - "esta función."); - break; - case MENU_LABEL_SLOWMOTION: - snprintf(s, len, - "Mantén pulsado este botón para \n" - "ir a cámara lenta."); - break; - case MENU_LABEL_FRAME_ADVANCE: - snprintf(s, len, - "Avanza un fotograma mientras \n" - "el contenido esté en pausa."); - break; - case MENU_LABEL_MOVIE_RECORD_TOGGLE: - snprintf(s, len, - "Activa o desactiva la grabación."); - break; - case MENU_LABEL_L_X_PLUS: - case MENU_LABEL_L_X_MINUS: - case MENU_LABEL_L_Y_PLUS: - case MENU_LABEL_L_Y_MINUS: - case MENU_LABEL_R_X_PLUS: - case MENU_LABEL_R_X_MINUS: - case MENU_LABEL_R_Y_PLUS: - case MENU_LABEL_R_Y_MINUS: - snprintf(s, len, - "El eje de un joystick analógico \n" - "(estilo DualShock).\n" - " \n" - "Se asigna como siempre, sin embargo, si se \n" - "asigna un eje analógico real, puede leerse \n" - "de forma analógica.\n" - " \n" - "El eje X positivo es hacia la derecha. \n" - "El eje Y positivo es hacia abajo."); - break; - case MENU_LABEL_VALUE_WHAT_IS_A_CORE_DESC: - snprintf(s, len, - "RetroArch, por si solo, no hace nada. \n" - " \n" - "Para que haga algo necesitas cargar \n" - "un programa en él. \n" - "\n" - "Llamamos a estos programas 'núcleos \n" - "libretro', o 'núcleos' para abreviar. \n" - " \n" - "Para cargar un núcleo, selecciona uno \n" - "en 'Cargar núcleo'. \n" - " \n" -#ifdef HAVE_NETWORKING - "Puedes conseguir núcleos de varias formas: \n" - "* Descárgalos en:\n" - "'%s' -> '%s'.\n" - "* Cópialos manualmente a:\n" - "'%s'.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONLINE_UPDATER), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_UPDATER_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) -#else - "Puedes conseguir núcleos si los\n" - "trasladas a mano en la carpeta\n" - "'%s'.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) -#endif - ); - break; - case MENU_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD_DESC: - snprintf(s, len, - "Puedes cambiar la superposición del \n" - "mando virtual si vas a '%s' \n" - "-> '%s'." - " \n" - "Desde ahí puedes cambiar la superposición, \n" - "el tamaño y opacidad de sus botones, etc.\n" - " \n" - "NOTA: Las superposiciones de mandos \n" - "virtuales están ocultas de forma \n" - "predeterminada si estás dentro del menú. \n" - "Si quieres cambiar este comportamiento, \n" - "cambia '%s' a Desactivado/false.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OVERLAY_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_HIDE_IN_MENU) - ); - break; - default: - if (s[0] == '\0') - strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); - return -1; - } - - return 0; -} diff --git a/menu/intl/menu_hash_fr.c b/menu/intl/menu_hash_fr.c deleted file mode 100644 index 366003bea9..0000000000 --- a/menu/intl/menu_hash_fr.c +++ /dev/null @@ -1,46 +0,0 @@ -/* RetroArch - A frontend for libretro. - * Copyright (C) 2011-2016 - 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 . - */ - -#include -#include - -#include "../menu_hash.h" - - /* IMPORTANT: - * For non-english characters to work without proper unicode support, - * we need this file to be encoded in ISO 8859-1 (Latin1), not UTF-8. - * If you save this file as UTF-8, you'll break non-english characters - * (e.g. German "Umlauts" and Portugese diacritics). - */ -/* DO NOT REMOVE THIS. If it causes build failure, it's because you saved the file as UTF-8. Read the above comment. */ -extern const char force_iso_8859_1[sizeof("àéÉèêô")==6+1 ? 1 : -1]; - -int menu_hash_get_help_fr(uint32_t hash, char *s, size_t len) -{ - int ret = 0; - /* If this one throws errors, stop sledgehammering square pegs into round holes and */ - /* READ THE COMMENTS at the top of the file. */ - (void)sizeof(force_iso_8859_1); - - switch (hash) - { - case 0: - default: - ret = -1; - break; - } - - return ret; -} diff --git a/menu/intl/menu_hash_it.c b/menu/intl/menu_hash_it.c deleted file mode 100644 index 43b9538203..0000000000 --- a/menu/intl/menu_hash_it.c +++ /dev/null @@ -1,1113 +0,0 @@ -/* RetroArch - A frontend for libretro. - * Copyright (C) 2011-2016 - 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 . - */ - -#include -#include - -#include - -#include "../menu_hash.h" -#include "../../msg_hash.h" -#include "../../configuration.h" - -/* IMPORTANT: - * For non-english characters to work without proper unicode support, - * we need this file to be encoded in ISO 8859-1 (Latin1), not UTF-8. - * If you save this file as UTF-8, you'll break non-english characters - * (e.g. German "Umlauts" and Portugese diacritics). - */ -/* DO NOT REMOVE THIS. If it causes build failure, it's because you saved the file as UTF-8. Read the above comment. */ -extern const char force_iso_8859_1[sizeof("áÁâãçéêíÍóõú")==12+1 ? 1 : -1]; - -int menu_hash_get_help_it(uint32_t hash, char *s, size_t len) -{ - uint32_t driver_hash = 0; - settings_t *settings = config_get_ptr(); - - /* If this one throws errors, stop sledgehammering square pegs into round holes and */ - /* READ THE COMMENTS at the top of the file. */ - (void)sizeof(force_iso_8859_1); - - switch (hash) - { - case MENU_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC: - { - /* Work around C89 limitations */ - char u[501]; - char t[501]; - - strlcpy(t, - "RetroArch si basa su una forma unica di\n" - "sincronizzazione audio/video che necessita essere\n" - "calibrata rispetto alla frequenza di aggiornamento\n" - "del tuo schermo per ottenere le migliori performance.\n" - " \n" - "Se accadono alcuni crepitii audio o del tearing\n" - "video, di solito significa che hai bisogno di\n" - "calibrare i settaggi. Alcuni suggerimenti sotto:\n" - " \n", sizeof(t)); - snprintf(u, sizeof(u), - "a) Vai su '%s' -> '%s', e abilita\n" - "'Threaded Video'. La frequenza di aggiornamento non sarà\n" - "influenzata in questo modo, il framerate sarà più alto,\n" - "ma il video potrebbe risultare meno fluido.\n" - "b) Vai su '%s' -> '%s', e guarda su\n" - "'%s'. Lascia caricare per\n" - "2048 fotogrammi, allora premi 'OK'.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_REFRESH_RATE_AUTO)); - strlcat(s, t, len); - strlcat(s, u, len); - } - break; - case MENU_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC: - snprintf(s, len, - "Per scansionare il contenuto, vai a '%s' e\n" - "seleziona '%s' oppure '%s'.\n" - " \n" - "I files saranno comparati alle entrate del database.\n" - "Se c'è un riscontro, sarà aggiunta un'entrata\n" - "alla collezione.\n" - " \n" - "Puoi accedere facilmente a questo contenuto\n" - "andando su '%s' ->\n" - "'%s'\n" - "invece di dover andare attraverso il\n" - "filebrowser ogni volta.\n" - " \n" - "NOTA: Il contenuto per alcuni core potrebbe non essere\n" - "scansionabile. Gli esempi includono: \n" - "MAME, FBA, e forse altri core." - , - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ADD_CONTENT_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_DIRECTORY), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_FILE), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CONTENT_COLLECTION_LIST) - ); - break; - case MENU_LABEL_VALUE_MENU_CONTROLS_PROLOG: - snprintf(s, len, - "Puoi usare i seguenti controlli sotto \n" - "sia su gamepad che su tastiera\n" - "per controllare il menù: \n" - " \n" - ); - break; - case MENU_LABEL_VALUE_EXTRACTING_PLEASE_WAIT: - strlcpy(s, "Estraendo, per favore attendi...\n", len); - break; - case MENU_LABEL_WELCOME_TO_RETROARCH: - snprintf(s, len, - "Benvenuto a RetroArch\n" - "\n" - "Per ulteriori informazioni, vai su Aiuto.\n" - ); - break; - case MENU_LABEL_INPUT_DRIVER: - if (settings) - driver_hash = msg_hash_calculate(settings->input.driver); - - switch (driver_hash) - { - case MENU_LABEL_INPUT_DRIVER_UDEV: - snprintf(s, len, - "udev Input driver. \n" - " \n" - "Questo driver può caricare senza X. \n" - " \n" - "Usa la recente evdev joypad API \n" - "per il supporto del joystick. Supporta \n" - "hotplugging e force feedback (se \n" - "supportato dal dispositivo). \n" - " \n" - "Il driver legge gli eventi evdev per il supporto \n" - "della tastiera. Supporta anche la callback della tastiera, \n" - "mouse e touchpads. \n" - " \n" - "Come predefinito nella maggior parte delle distribuzioni, i nodi /dev/input \n" - "sono only-root (modalità 600). Puoi settare una regola udev \n" - "che fa queste accessibili ai non-root." - ); - break; - case MENU_LABEL_INPUT_DRIVER_LINUXRAW: - snprintf(s, len, - "linuxraw Input driver. \n" - " \n" - "questo driver richiede un'attiva TTY. Gli eventi \n" - "della tastiera sono letti direttamente dal TTY che \n" - "che lo rende più semplice, ma non tanto flessibile quanto udev. \n" "Mouse, ecc., non sono supportati. \n" - " \n" - "Questo driver usa la più vecchia API per il joystick \n" - "(/dev/input/js*)."); - break; - default: - snprintf(s, len, - "Driver input.\n" - " \n" - "Dipende dal driver video, potrebbe \n" - "forzare un differente driver input."); - break; - } - break; - case MENU_LABEL_LOAD_CONTENT: - snprintf(s, len, - "Carica Contenuto. \n" - "Seleziona per contenuto. \n" - " \n" - "Per caricare i giochi, hai bisogno di \n" - "un 'Core' da usare, e un gioco per quel core.\n" - " \n" - "Per controllare dove il menù comincia \n" - " a selezionare per contenuto, imposta \n" - "'File Browser Directory'. \n" - "Se non impostato, si avvierà nella root. \n" - " \n" - "Il browser filtrerà le\n" - "estensioni per l'ultimo core impostato \n" - "in 'Carica Core', e userà quel core \n" - "quando il gioco viene caricato." - ); - break; - case MENU_LABEL_CORE_LIST: - snprintf(s, len, - "Carica Core. \n" - " \n" - "Sfoglia per una implementazione per il \n" - "core libretro. Dove il browser \n" - "si avvia dipende dal percorso impostato per \n" - "Core Directory. Se vuoto, si avvierà nella root. \n" - " \n" - "Se la Core Directory è una directory, il menù \n" - "userà quella come cartella principale. Se la Core \n" - "Directory è un percorso completo, si avvierà \n" - "nella cartella dove si trova il file."); - break; - case MENU_LABEL_LOAD_CONTENT_HISTORY: - snprintf(s, len, - "Caricando contenuto dalla cronologia. \n" - " \n" - "Quando il contenuto è caricato, le combinazioni \n" - "contenuto e core sono salvati nella cronologia. \n" - " \n" - "La cronologia è salvata in un file nella stessa \n" - "directory come il file di configurazione RetroArch. Se \n" - "nessun file di configurazione viene caricato all'avvio, la \n" - "cronologia non sarà salvata o caricata, e non apparirà \n" - "nel menù principale." - ); - break; - case MENU_LABEL_VIDEO_DRIVER: - if (settings) - driver_hash = msg_hash_calculate(settings->video.driver); - - switch (driver_hash) - { - case MENU_LABEL_VIDEO_DRIVER_GL: - snprintf(s, len, - "Diver video OpenGL. \n" - " \n" - "Questo driver permette ai libretro core GL di \n" - "essere usati in aggiunta alle implementazioni \n" - "renderizzate via software dei core.\n" - " \n" - "Le performance per il rendering software e \n" - "le implementazioni del libretro core G dipende \n" - "dalla tua scheda grafica \n" - "sottostante driver GL)."); - break; - case MENU_LABEL_VIDEO_DRIVER_SDL2: - snprintf(s, len, - "Driver video SDL 2.\n" - " \n" - "Questo è un driver video SDL 2 renderizzato \n" - "via software.\n" - " \n" - "Le performance per le implementazioni dei core \n" - "renderizzati via software dipende \n" - "dall'implementazzione sulla tua piattaforma SDL."); - break; - case MENU_LABEL_VIDEO_DRIVER_SDL1: - snprintf(s, len, - "Driver video SDL.\n" - " \n" - "Questo è un driver video SDL 1.2 renderizzato \n" - "via software.\n" - " \n" - "Le performance sono considerate quasi ottimali. \n" - "Considera di usare questo soltanto come ultima scelta."); - break; - case MENU_LABEL_VIDEO_DRIVER_D3D: - snprintf(s, len, - "Driver video Direct3D. \n" - " \n" - "Le performance per i core renderizzati via \n" - "software dipende dal driver D3D inerente \n" - "alla tua scheda video)."); - break; - case MENU_LABEL_VIDEO_DRIVER_EXYNOS: - snprintf(s, len, - "Exynos-G2D Video Driver. \n" - " \n" - "Questo è un driver video Exynos a basso livello. \n" - "Usa il blocco G2D nei SoC Samsung Exynos \n" - "per operazioni blit. \n" - " \n" - "Le performance per i core renderizzati via software \n" - "dovrebbero essere ottimali."); - break; - case MENU_LABEL_VIDEO_DRIVER_SUNXI: - snprintf(s, len, - "Driver video Sunxi-G2D. \n" - " \n" - "Questo è un driver video Sunxi a basso livello. \n" - "Usa il blocco G2D nei Soc Allwinner."); - break; - default: - snprintf(s, len, - "Driver video attuale."); - break; - } - break; - case MENU_LABEL_AUDIO_DSP_PLUGIN: - snprintf(s, len, - "Plugin audio DSP.\n" - "Processa l'audio prima di inviarlo \n" - "al driver." - ); - break; - case MENU_LABEL_AUDIO_RESAMPLER_DRIVER: - if (settings) - driver_hash = msg_hash_calculate(settings->audio.resampler); - - switch (driver_hash) - { - case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_SINC: - snprintf(s, len, - "Implementazione SINC in modalità finestra."); - break; - case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_CC: - snprintf(s, len, - "Implementazione coseno complesso."); - break; - } - break; - case MENU_LABEL_VIDEO_SHADER_PRESET: - snprintf(s, len, - "Carica Shader Preimpostati. \n" - " \n" - " Carica un " -#ifdef HAVE_CG - "Cg" -#endif -#ifdef HAVE_GLSL -#ifdef HAVE_CG - "/" -#endif - "GLSL" -#endif -#ifdef HAVE_HLSL -#if defined(HAVE_CG) || defined(HAVE_HLSL) - "/" -#endif - "HLSL" -#endif - " preimposta direttamente. \n" - "Il menù degli shader è aggiornato di conseguenza. \n" - " \n" - "Se la CGP usa metodi di scala che non sono \n" - "semplici, (es. scala fonte, stessa scala \n" - "fattore per X/Y), il fattore di scala mostrato \n" - "nel menù potrebbe non essere corretto." - ); - break; - case MENU_LABEL_VIDEO_SHADER_SCALE_PASS: - snprintf(s, len, - "Scala per questo passaggio. \n" - " \n" - "Il fattore di scala accumula, es. 2x \n" - "per il primo passaggio e 2x per il secondo \n" - "passaggio darà una scala totale di 4x. \n" - " \n" - "Se c'è un fattore di scala per l'ultimo \n" - "passaggio, il risultato è allungare lo \n" - "schermo con il filtro specificato in \n" - "'Filtro Predefinito'. \n" - " \n" - "Se 'Non considerare' è impostato, sia la scala \n" - "1x che allunga a pieno schermo saranno \n" - "usati a seconda se è o non è l'ultimo \n" - "passaggio." - ); - break; - case MENU_LABEL_VIDEO_SHADER_NUM_PASSES: - snprintf(s, len, - "Passaggi Shader. \n" - " \n" - "RetroArch permette di mixare e confrontare vari \n" - "shaders con i passaggi arbitrari dello shader, con \n" - "filtri hardware personalizzati e fattori di scala. \n" - " \n" - "Questa opzione specifica il numero dei passaggi \n" - "shader da usare. Se imposti questo a 0, e usi \n" - "Applica modifiche agli shader, usi uno shader 'vuoto'. \n" - " \n" - "L'opzione Filtro Predefinito riguarderà il \n" - "filtro di allungamento immagine."); - break; - case MENU_LABEL_VIDEO_SHADER_PARAMETERS: - snprintf(s, len, - "Parametri shader. \n" - " \n" - "Modifica direttamente l'attuale shader. Non sarà \n" - "salvato al file preimpostato CGP/GLSLP."); - break; - case MENU_LABEL_VIDEO_SHADER_PRESET_PARAMETERS: - snprintf(s, len, - "Parametri Shader Preimpostati. \n" - " \n" - "Modifica lo shader preimpostato attualmente nel menù." - ); - break; - case MENU_LABEL_VIDEO_SHADER_PASS: - snprintf(s, len, - "Percorso allo shader. \n" - " \n" - "Tutti gli shaders devono essere dello stesso \n" - "tipo (es. CG, GLSL or HLSL). \n" - " \n" - "Imposta la Directory Shader per stabilire dove \n" - "il browser comincia a cercare gli \n" - "shader." - ); - break; - case MENU_LABEL_CONFIG_SAVE_ON_EXIT: - snprintf(s, len, - "Salva la configurazione sul disco all'uscita.\n" - "Utile per i menù in quanto i settaggi possono \n" - "essere modificati. Sovrascrive la configurazione.\n" - " \n" - "#include ed i commenti non sono \n" - "conservati. \n" - " \n" - "Per design, il file di configurazione è \n" - "considerato immutabile in quanto è \n" - "piacevolmente mantenuto dall'utente, \n" - "e non dovrebbe essere sovrascritto \n" - "alle spalle dell'utente." -#if defined(RARCH_CONSOLE) || defined(RARCH_MOBILE) - "\nQuesto non è il caso per le \n" - "console comunque, dove \n" - "guardare al file di configurazione \n" - "manualmente non è veramente un'opzione." -#endif - ); - break; - case MENU_LABEL_VIDEO_SHADER_FILTER_PASS: - snprintf(s, len, - "Filtro hardware per questo passaggio. \n" - " \n" - "Se 'Non prendere cura' è impostato, allora il \n" - "'Filtro Predefinito' sarà usato." - ); - break; - case MENU_LABEL_AUTOSAVE_INTERVAL: - snprintf(s, len, - "Salva automaticamente la SRAM non-volatile \n" - "ad un itervallo regolare.\n" - " \n" - "Questo è disattivato come predefinito a meno che non \n" - "è impostato diversamente. L'intervallo è misurato in \n" - "secondi. \n" - " \n" - "Il valore 0 disattiva il salvataggio automatico."); - break; - case MENU_LABEL_INPUT_BIND_DEVICE_TYPE: - snprintf(s, len, - "Tipo di dispositivo di input. \n" - " \n" - "Sceglie quale tipo di dispositivo usare. Questo è \n" - "rilevante per il libretro core." - ); - break; - case MENU_LABEL_LIBRETRO_LOG_LEVEL: - snprintf(s, len, - "Imposta il livello dei log per i libretro core \n" - "(GET_LOG_INTERFACE). \n" - " \n" - " Se il livello dei log rilasciato da un libretro \n" - " core è sotto il livello libretro_log, \n" - " sarà ignorato.\n" - " \n" - " DEBUG log sono sempre ignorati a meno che \n" - " la modalità verbose mode è attivata (--verbose).\n" - " \n" - " DEBUG = 0\n" - " INFO = 1\n" - " WARN = 2\n" - " ERROR = 3" - ); - break; - case MENU_LABEL_STATE_SLOT_INCREASE: - case MENU_LABEL_STATE_SLOT_DECREASE: - snprintf(s, len, - "Slot dello stato di salvataggio.\n" - " \n" - " Con lo slot impostato a 0, il nome dello stato di salvataggio è *.state \n" - " (o che cosa è stato impostato sulla riga di comando).\n" - "Quando lo slot è != 0, il percorso sarà (percorso)(d), \n" - "dove (d) è il numero dello slot."); - break; - case MENU_LABEL_SHADER_APPLY_CHANGES: - snprintf(s, len, - "Applica le modifiche allo shader. \n" - " \n" - "Dopo che modifichi i settaggi dello shader, usa questo per \n" - "applicare i cambiamenti. \n" - " \n" - "Modificare i settaggi dello shader è un \n" - "operazione costosa quindi deve essere \n" - "fatta esplicitamente. \n" - " \n" - "Quando applichi gli shader, i settaggi del menù \n" - "degli shader sono salvati ad un file temporaneo (sia \n" - "menu.cgp che menu.glslp) e caricati. Il file \n" - "rimane dopo che RetroArch esce. Il file è \n" - "salvato alla Directory Shader." - ); - break; - case MENU_LABEL_INPUT_BIND_DEVICE_ID: - snprintf(s, len, - "Dispositivo di input. \n" - " \n" - "Scegli quale gamepad usare per l'utente N. \n" - "Il nome del pad è disponibile." - ); - break; - case MENU_LABEL_MENU_TOGGLE: - snprintf(s, len, - "Attiva menù."); - break; - case MENU_LABEL_GRAB_MOUSE_TOGGLE: - snprintf(s, len, - "Attiva presa mouse.\n" - " \n" - "Quando usi il mouse, RetroArch nasconde il \n" - "mouse, e tiene il puntatore del mouse dentro \n" - "la finestra per permettere al relativo input del mouse \n" - "di funzionare meglio."); - break; - case MENU_LABEL_DISK_NEXT: - snprintf(s, len, - "Spostati tra le immagini del disco. Usa dopo \n" - "l'espulsione. \n" - " \n" - " Completa premendo il tasto espulsione di nuovo."); - break; - case MENU_LABEL_VIDEO_FILTER: -#ifdef HAVE_FILTERS_BUILTIN - snprintf(s, len, - "Filtro video basato sulla CPU."); -#else - snprintf(s, len, - "Filtro video basato sulla CPU.\n" - " \n" - "Percorso di una libreria dinamica."); -#endif - break; - case MENU_LABEL_AUDIO_DEVICE: - snprintf(s, len, - "Escludi il dispositivo audio predefinito \n" - "che il driver audio usa.\n" - "Dipende dal driver. E.g.\n" -#ifdef HAVE_ALSA - " \n" - "ALSA vuole un dipositivo PCM." -#endif -#ifdef HAVE_OSS - " \n" - "OSS vuole un percorso (e.g. /dev/dsp)." -#endif -#ifdef HAVE_JACK - " \n" - "JACK vuole i nomi delle porte (e.g. system:playback1\n" - ",system:playback_2)." -#endif -#ifdef HAVE_RSOUND - " \n" - "RSound vuole l'indirizzo IP di un \n" - "server RSound." -#endif - ); - break; - case MENU_LABEL_DISK_EJECT_TOGGLE: - snprintf(s, len, - "Toggles eject for disks.\n" - " \n" - "Used for multiple-disk content."); - break; - case MENU_LABEL_ENABLE_HOTKEY: - snprintf(s, len, - "Enable other hotkeys.\n" - " \n" - " If this hotkey is bound to either keyboard, \n" - "joybutton or joyaxis, all other hotkeys will \n" - "be disabled unless this hotkey is also held \n" - "at the same time. \n" - " \n" - "This is useful for RETRO_KEYBOARD centric \n" - "implementations which query a large area of \n" - "the keyboard, where it is not desirable that \n" - "hotkeys get in the way."); - break; - case MENU_LABEL_REWIND_ENABLE: - snprintf(s, len, - "Enable rewinding.\n" - " \n" - "This will take a performance hit, \n" - "so it is disabled by default."); - break; - case MENU_LABEL_LIBRETRO_DIR_PATH: - snprintf(s, len, - "Core Directory. \n" - " \n" - "A directory for where to search for \n" - "libretro core implementations."); - break; - case MENU_LABEL_VIDEO_REFRESH_RATE_AUTO: - snprintf(s, len, - "Refresh Rate Auto.\n" - " \n" - "The accurate refresh rate of our monitor (Hz).\n" - "This is used to calculate audio input rate with \n" - "the formula: \n" - " \n" - "audio_input_rate = game input rate * display \n" - "refresh rate / game refresh rate\n" - " \n" - "If the implementation does not report any \n" - "values, NTSC defaults will be assumed for \n" - "compatibility.\n" - " \n" - "This value should stay close to 60Hz to avoid \n" - "large pitch changes. If your monitor does \n" - "not run at 60Hz, or something close to it, \n" - "disable VSync, and leave this at its default."); - break; - case MENU_LABEL_VIDEO_ROTATION: - snprintf(s, len, - "Forces a certain rotation \n" - "of the screen.\n" - " \n" - "The rotation is added to rotations which\n" - "the libretro core sets (see Video Allow\n" - "Rotate)."); - break; - case MENU_LABEL_VIDEO_SCALE: - snprintf(s, len, - "Fullscreen resolution.\n" - " \n" - "Resolution of 0 uses the \n" - "resolution of the environment.\n"); - break; - case MENU_LABEL_FASTFORWARD_RATIO: - snprintf(s, len, - "Fastforward ratio." - " \n" - "The maximum rate at which content will\n" - "be run when using fast forward.\n" - " \n" - " (E.g. 5.0 for 60 fps content => 300 fps \n" - "cap).\n" - " \n" - "RetroArch will go to sleep to ensure that \n" - "the maximum rate will not be exceeded.\n" - "Do not rely on this cap to be perfectly \n" - "accurate."); - break; - case MENU_LABEL_VIDEO_MONITOR_INDEX: - snprintf(s, len, - "Which monitor to prefer.\n" - " \n" - "0 (default) means no particular monitor \n" - "is preferred, 1 and up (1 being first \n" - "monitor), suggests RetroArch to use that \n" - "particular monitor."); - break; - case MENU_LABEL_VIDEO_CROP_OVERSCAN: - snprintf(s, len, - "Forces cropping of overscanned \n" - "frames.\n" - " \n" - "Exact behavior of this option is \n" - "core-implementation specific."); - break; - case MENU_LABEL_VIDEO_SCALE_INTEGER: - snprintf(s, len, - "Only scales video in integer \n" - "steps.\n" - " \n" - "The base size depends on system-reported \n" - "geometry and aspect ratio.\n" - " \n" - "If Force Aspect is not set, X/Y will be \n" - "integer scaled independently."); - break; - case MENU_LABEL_AUDIO_VOLUME: - snprintf(s, len, - "Audio volume, expressed in dB.\n" - " \n" - " 0 dB is normal volume. No gain will be applied.\n" - "Gain can be controlled in runtime with Input\n" - "Volume Up / Input Volume Down."); - break; - case MENU_LABEL_AUDIO_RATE_CONTROL_DELTA: - snprintf(s, len, - "Audio rate control.\n" - " \n" - "Setting this to 0 disables rate control.\n" - "Any other value controls audio rate control \n" - "delta.\n" - " \n" - "Defines how much input rate can be adjusted \n" - "dynamically.\n" - " \n" - " Input rate is defined as: \n" - " input rate * (1.0 +/- (rate control delta))"); - break; - case MENU_LABEL_AUDIO_MAX_TIMING_SKEW: - snprintf(s, len, - "Maximum audio timing skew.\n" - " \n" - "Defines the maximum change in input rate.\n" - "You may want to increase this to enable\n" - "very large changes in timing, for example\n" - "running PAL cores on NTSC displays, at the\n" - "cost of inaccurate audio pitch.\n" - " \n" - " Input rate is defined as: \n" - " input rate * (1.0 +/- (max timing skew))"); - break; - case MENU_LABEL_OVERLAY_NEXT: - snprintf(s, len, - "Toggles to next overlay.\n" - " \n" - "Wraps around."); - break; - case MENU_LABEL_LOG_VERBOSITY: - snprintf(s, len, - "Enable or disable verbosity level \n" - "of frontend."); - break; - case MENU_LABEL_VOLUME_UP: - snprintf(s, len, - "Increases audio volume."); - break; - case MENU_LABEL_VOLUME_DOWN: - snprintf(s, len, - "Decreases audio volume."); - break; - case MENU_LABEL_VIDEO_DISABLE_COMPOSITION: - snprintf(s, len, - "Forcibly disable composition.\n" - "Only valid on Windows Vista/7 for now."); - break; - case MENU_LABEL_PERFCNT_ENABLE: - snprintf(s, len, - "Enable or disable frontend \n" - "performance counters."); - break; - case MENU_LABEL_SYSTEM_DIRECTORY: - snprintf(s, len, - "System Directory. \n" - " \n" - "Sets the 'system' directory.\n" - "Cores can query for this\n" - "directory to load BIOSes, \n" - "system-specific configs, etc."); - break; - case MENU_LABEL_SAVESTATE_AUTO_SAVE: - snprintf(s, len, - "Automatically saves a savestate at the \n" - "end of RetroArch's lifetime.\n" - " \n" - "RetroArch will automatically load any savestate\n" - "with this path on startup if 'Auto Load State\n" - "is enabled."); - break; - case MENU_LABEL_VIDEO_THREADED: - snprintf(s, len, - "Use threaded video driver.\n" - " \n" - "Using this might improve performance at \n" - "possible cost of latency and more video \n" - "stuttering."); - break; - case MENU_LABEL_VIDEO_VSYNC: - snprintf(s, len, - "Video V-Sync.\n"); - break; - case MENU_LABEL_VIDEO_HARD_SYNC: - snprintf(s, len, - "Attempts to hard-synchronize \n" - "CPU and GPU.\n" - " \n" - "Can reduce latency at cost of \n" - "performance."); - break; - case MENU_LABEL_REWIND_GRANULARITY: - snprintf(s, len, - "Rewind granularity.\n" - " \n" - " When rewinding defined number of \n" - "frames, you can rewind several frames \n" - "at a time, increasing the rewinding \n" - "speed."); - break; - case MENU_LABEL_SCREENSHOT: - snprintf(s, len, - "Take screenshot."); - break; - case MENU_LABEL_VIDEO_FRAME_DELAY: - snprintf(s, len, - "Sets how many milliseconds to delay\n" - "after VSync before running the core.\n" - "\n" - "Can reduce latency at cost of\n" - "higher risk of stuttering.\n" - " \n" - "Maximum is 15."); - break; - case MENU_LABEL_VIDEO_HARD_SYNC_FRAMES: - snprintf(s, len, - "Sets how many frames CPU can \n" - "run ahead of GPU when using 'GPU \n" - "Hard Sync'.\n" - " \n" - "Maximum is 3.\n" - " \n" - " 0: Syncs to GPU immediately.\n" - " 1: Syncs to previous frame.\n" - " 2: Etc ..."); - break; - case MENU_LABEL_VIDEO_BLACK_FRAME_INSERTION: - snprintf(s, len, - "Inserts a black frame inbetween \n" - "frames.\n" - " \n" - "Useful for 120 Hz monitors who want to \n" - "play 60 Hz material with eliminated \n" - "ghosting.\n" - " \n" - "Video refresh rate should still be \n" - "configured as if it is a 60 Hz monitor \n" - "(divide refresh rate by 2)."); - break; - case MENU_LABEL_RGUI_SHOW_START_SCREEN: - snprintf(s, len, - "Show startup screen in menu.\n" - "Is automatically set to false when seen\n" - "for the first time.\n" - " \n" - "This is only updated in config if\n" - "'Save Configuration on Exit' is enabled.\n"); - break; - case MENU_LABEL_CORE_SPECIFIC_CONFIG: - snprintf(s, len, - "Load up a specific config file \n" - "based on the core being used.\n"); - break; - case MENU_LABEL_VIDEO_FULLSCREEN: - snprintf(s, len, "Toggles fullscreen."); - break; - case MENU_LABEL_BLOCK_SRAM_OVERWRITE: - snprintf(s, len, - "Block SRAM from being overwritten \n" - "when loading save states.\n" - " \n" - "Might potentially lead to buggy games."); - break; - case MENU_LABEL_PAUSE_NONACTIVE: - snprintf(s, len, - "Pause gameplay when window focus \n" - "is lost."); - break; - case MENU_LABEL_VIDEO_GPU_SCREENSHOT: - snprintf(s, len, - "Screenshots output of GPU shaded \n" - "material if available."); - break; - case MENU_LABEL_SCREENSHOT_DIRECTORY: - snprintf(s, len, - "Screenshot Directory. \n" - " \n" - "Directory to dump screenshots to." - ); - break; - case MENU_LABEL_VIDEO_SWAP_INTERVAL: - snprintf(s, len, - "VSync Swap Interval.\n" - " \n" - "Uses a custom swap interval for VSync. Set this \n" - "to effectively halve monitor refresh rate."); - break; - case MENU_LABEL_SAVEFILE_DIRECTORY: - snprintf(s, len, - "Savefile Directory. \n" - " \n" - "Save all save files (*.srm) to this \n" - "directory. This includes related files like \n" - ".bsv, .rt, .psrm, etc...\n" - " \n" - "This will be overridden by explicit command line\n" - "options."); - break; - case MENU_LABEL_SAVESTATE_DIRECTORY: - snprintf(s, len, - "Savestate Directory. \n" - " \n" - "Save all save states (*.state) to this \n" - "directory.\n" - " \n" - "This will be overridden by explicit command line\n" - "options."); - break; - case MENU_LABEL_ASSETS_DIRECTORY: - snprintf(s, len, - "Assets Directory. \n" - " \n" - " This location is queried by default when \n" - "menu interfaces try to look for loadable \n" - "assets, etc."); - break; - case MENU_LABEL_DYNAMIC_WALLPAPERS_DIRECTORY: - snprintf(s, len, - "Dynamic Wallpapers Directory. \n" - " \n" - " The place to store wallpapers that will \n" - "be loaded dynamically by the menu depending \n" - "on context."); - break; - case MENU_LABEL_SLOWMOTION_RATIO: - snprintf(s, len, - "Slowmotion ratio." - " \n" - "When slowmotion, content will slow\n" - "down by factor."); - break; - case MENU_LABEL_INPUT_AXIS_THRESHOLD: - snprintf(s, len, - "Defines axis threshold.\n" - " \n" - "How far an axis must be tilted to result\n" - "in a button press.\n" - " Possible values are [0.0, 1.0]."); - break; - case MENU_LABEL_INPUT_TURBO_PERIOD: - snprintf(s, len, - "Turbo period.\n" - " \n" - "Describes speed of which turbo-enabled\n" - "buttons toggle." - ); - break; - case MENU_LABEL_INPUT_AUTODETECT_ENABLE: - snprintf(s, len, - "Enable input auto-detection.\n" - " \n" - "Will attempt to auto-configure \n" - "joypads, Plug-and-Play style."); - break; - case MENU_LABEL_CAMERA_ALLOW: - snprintf(s, len, - "Allow or disallow camera access by \n" - "cores."); - break; - case MENU_LABEL_LOCATION_ALLOW: - snprintf(s, len, - "Allow or disallow location services \n" - "access by cores."); - break; - case MENU_LABEL_TURBO: - snprintf(s, len, - "Turbo enable.\n" - " \n" - "Holding the turbo while pressing another \n" - "button will let the button enter a turbo \n" - "mode where the button state is modulated \n" - "with a periodic signal. \n" - " \n" - "The modulation stops when the button \n" - "itself (not turbo button) is released."); - break; - case MENU_LABEL_OSK_ENABLE: - snprintf(s, len, - "Enable/disable on-screen keyboard."); - break; - case MENU_LABEL_AUDIO_MUTE: - snprintf(s, len, - "Mute/unmute audio."); - break; - case MENU_LABEL_REWIND: - snprintf(s, len, - "Hold button down to rewind.\n" - " \n" - "Rewind must be enabled."); - break; - case MENU_LABEL_EXIT_EMULATOR: - snprintf(s, len, - "Key to exit RetroArch cleanly." -#if !defined(RARCH_MOBILE) && !defined(RARCH_CONSOLE) - "\nKilling it in any hard way (SIGKILL, \n" - "etc) will terminate without saving\n" - "RAM, etc. On Unix-likes,\n" - "SIGINT/SIGTERM allows\n" - "a clean deinitialization." -#endif - ); - break; - case MENU_LABEL_LOAD_STATE: - snprintf(s, len, - "Loads state."); - break; - case MENU_LABEL_SAVE_STATE: - snprintf(s, len, - "Saves state."); - break; - case MENU_LABEL_NETPLAY_FLIP_PLAYERS: - snprintf(s, len, - "Netplay flip users."); - break; - case MENU_LABEL_CHEAT_INDEX_PLUS: - snprintf(s, len, - "Increment cheat index.\n"); - break; - case MENU_LABEL_CHEAT_INDEX_MINUS: - snprintf(s, len, - "Decrement cheat index.\n"); - break; - case MENU_LABEL_SHADER_PREV: - snprintf(s, len, - "Applies previous shader in directory."); - break; - case MENU_LABEL_SHADER_NEXT: - snprintf(s, len, - "Applies next shader in directory."); - break; - case MENU_LABEL_RESET: - snprintf(s, len, - "Reset the content.\n"); - break; - case MENU_LABEL_PAUSE_TOGGLE: - snprintf(s, len, - "Toggle between paused and non-paused state."); - break; - case MENU_LABEL_CHEAT_TOGGLE: - snprintf(s, len, - "Toggle cheat index.\n"); - break; - case MENU_LABEL_HOLD_FAST_FORWARD: - snprintf(s, len, - "Hold for fast-forward. Releasing button \n" - "disables fast-forward."); - break; - case MENU_LABEL_SLOWMOTION: - snprintf(s, len, - "Hold for slowmotion."); - break; - case MENU_LABEL_FRAME_ADVANCE: - snprintf(s, len, - "Frame advance when content is paused."); - break; - case MENU_LABEL_MOVIE_RECORD_TOGGLE: - snprintf(s, len, - "Toggle between recording and not."); - break; - case MENU_LABEL_L_X_PLUS: - case MENU_LABEL_L_X_MINUS: - case MENU_LABEL_L_Y_PLUS: - case MENU_LABEL_L_Y_MINUS: - case MENU_LABEL_R_X_PLUS: - case MENU_LABEL_R_X_MINUS: - case MENU_LABEL_R_Y_PLUS: - case MENU_LABEL_R_Y_MINUS: - snprintf(s, len, - "Axis for analog stick (DualShock-esque).\n" - " \n" - "Bound as usual, however, if a real analog \n" - "axis is bound, it can be read as a true analog.\n" - " \n" - "Positive X axis is right. \n" - "Positive Y axis is down."); - break; - case MENU_LABEL_VALUE_WHAT_IS_A_CORE_DESC: - snprintf(s, len, - "RetroArch da solo non fa nulla. \n" - " \n" - "Per farlo funzionare, hai bisogno di \n" - "caricare un programma su di esso. \n" - "\n" - "Noi chiamiamo tale programma 'Libretro core', \n" - "o abbreviato 'core'. \n" - " \n" - "Per caricare un core, selezionane uno da\n" - "'Carica Core'.\n" - " \n" -#ifdef HAVE_NETWORKING - "Puoi ottenere i core in diversi modi: \n" - "* Scaricali andando su\n" - "'%s' -> '%s'.\n" - "* Manualmente trasferiscili su\n" - "'%s'.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONLINE_UPDATER), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_UPDATER_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) -#else - "Puoi ottenere i core da\n" - "manualmente trasferendoli su\n" - "'%s'.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) -#endif - ); - break; - case MENU_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD_DESC: - snprintf(s, len, - "Puoi cambiare lo schema del gamepad virtuale\n" - "andando su '%s' \n" - "-> '%s'." - " \n" - "Da lì puoi cambiare lo schema,\n" - "la dimensione e l'opacità dei tasti, ecc.\n" - " \n" - "NOTA: Come predefinito, gli schemi del gamepad virtuale\n" - "sono nascosti nel menù.\n" - "Se vorresti cambiare questa impostazione,\n" - "puoi impostare '%s' a spento/OFF.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OVERLAY_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_HIDE_IN_MENU) - ); - break; - default: - if (s[0] == '\0') - strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); - return -1; - } - - return 0; -} diff --git a/menu/intl/menu_hash_nl.c b/menu/intl/menu_hash_nl.c deleted file mode 100644 index 38ef0d8501..0000000000 --- a/menu/intl/menu_hash_nl.c +++ /dev/null @@ -1,37 +0,0 @@ -/* RetroArch - A frontend for libretro. - * Copyright (C) 2011-2016 - 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 . - */ - -#include -#include - -#include - -#include "../menu_hash.h" - -int menu_hash_get_help_nl(uint32_t hash, char *s, size_t len) -{ - int ret = 0; - - switch (hash) - { - case 0: - default: - strlcpy(s, "Geen informatie beschikbaar.", len); - ret = -1; - break; - } - - return ret; -} diff --git a/menu/intl/menu_hash_pl.c b/menu/intl/menu_hash_pl.c deleted file mode 100644 index bfca2a917d..0000000000 --- a/menu/intl/menu_hash_pl.c +++ /dev/null @@ -1,35 +0,0 @@ -/* RetroArch - A frontend for libretro. - * Copyright (C) 2011-2016 - 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 . - */ - -#include -#include - -#include "../menu_hash.h" -#include "../../configuration.h" - -int menu_hash_get_help_pl(uint32_t hash, char *s, size_t len) -{ - int ret = 0; - - switch (hash) - { - case 0: - default: - ret = -1; - break; - } - - return ret; -} diff --git a/menu/intl/menu_hash_pt.c b/menu/intl/menu_hash_pt.c deleted file mode 100644 index 0d0d4d35e4..0000000000 --- a/menu/intl/menu_hash_pt.c +++ /dev/null @@ -1,995 +0,0 @@ -/* RetroArch - A frontend for libretro. - * Copyright (C) 2011-2016 - 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 . - */ - -#include -#include - -#include -#include - -#include "../menu_hash.h" -#include "../../msg_hash.h" -#include "../../configuration.h" - - /* IMPORTANT: - * For non-english characters to work without proper unicode support, - * we need this file to be encoded in ISO 8859-1 (Latin1), not UTF-8. - * If you save this file as UTF-8, you'll break non-english characters - * (e.g. German "Umlauts" and Portugese diacritics). - */ -/* DO NOT REMOVE THIS. If it causes build failure, it's because you saved the file as UTF-8. Read the above comment. */ -extern const char force_iso_8859_1[sizeof("áÁâãçéêíÍóõú")==12+1 ? 1 : -1]; - -int menu_hash_get_help_pt(uint32_t hash, char *s, size_t len) -{ - uint32_t driver_hash = 0; - settings_t *settings = config_get_ptr(); - - /* If this one throws errors, stop sledgehammering square pegs into round holes and */ - /* READ THE COMMENTS at the top of the file. */ (void)sizeof(force_iso_8859_1); - - switch (hash) - { - case MENU_LABEL_INPUT_DRIVER: - if (settings) - driver_hash = msg_hash_calculate(settings->input.driver); - - switch (driver_hash) - { - case MENU_LABEL_INPUT_DRIVER_UDEV: - snprintf(s, len, - "Driver de entrada udev. \n" - " \n" - "Esse driver funciona sem o X. \n" - " \n" - "Ele usa a recente API de joypads \n" - "evdev para supporte a joystick. \n" - "Suporta Hot-Swap e force feedback \n" - "(se suportado pelo dispositivo). \n" - " \n" - "O driver lê os eventos evdev para suporte a \n" - "teclado. Suporta também callback de teclado, \n" - "mouses e touchpads. \n" - " \n" - "Em geral, na maioria das distribuições, os nós \n" - "/dev/input são root-only (modo 600). Mas você pode \n" - "definir uma regra udev para dar acesso a non-roots." - ); - break; - case MENU_LABEL_INPUT_DRIVER_LINUXRAW: - snprintf(s, len, - "Driver de Entrada linuxraw. \n" - " \n" - "Esse driver requer um TTY ativo. Eventos de \n" - "teclado são lidos diretamente do TTY, tornando-o \n" - "simples, mas não tão flexível quanto o udev. \n" "Mouses, etc, não são suportados. \n" - " \n" - "Esse driver usa a antiga API de joysticks \n" - "(/dev/input/js*)."); - break; - default: - snprintf(s, len, - "Driver de Entrada.\n" - " \n" - "Dependendo do driver de vídeo, pode ser necessário \n" - "forçar um driver de entrada diferente."); - break; - } - break; - case MENU_LABEL_LOAD_CONTENT: - snprintf(s, len, - "Carregar Conteúdo. \n" - "Busca conteúdo. \n" - " \n" - "Para carregar conteúdo, você precisa de \n" - "um core libretro para usar, e um arquivo \n" - "de conteúdo. \n" - " \n" - "Para controlar onde o menu começa a \n" - "buscar conteúdo, defina o Diretório \n" - "de Navegação. Se não estiver definido, \n" - "o Retroarch começará no diretório raiz. \n" - " \n" - "O navegador vai filtrar pelas extensões \n" - "do mais recente core definido em 'Core', \n" - "e o usará quando o conteúdo estiver \n" - "carregado." - ); - break; - case MENU_LABEL_CORE_LIST: - snprintf(s, len, - "Carregar Core. \n" - " \n" - "Busca uma implementação de um core \n" - "libretro. Onde a busca inicia depende \n" - "do caminho do seu Diretório de Cores. \n" - "Se não definido, começará no raiz. \n" - " \n" - "Se o Diretório de Cores estiver definido, \n" - "o menu o usará como pasta inicial. Se for um \n" - "caminho completo, ele começará na pasta onde \n" - "o arquivo estiver."); - break; - case MENU_LABEL_LOAD_CONTENT_HISTORY: - snprintf(s, len, - "Carregando conteúdo do histórico. \n" - " \n" - "Ao carregar conteúdos, suas combinações com \n" - "cores são salvas no histórico. \n" - " \n" - "O histórico é salvo em um arquivo no mesmo \n" - "diretório do arquivo de configuração. Se nenhuma \n" - "configuração tiver sido carregada, o histórico \n" - "não será salvo ou carregado e não vai existir no \n" - "menu principal." - ); - break; - case MENU_LABEL_VIDEO_DRIVER: - if (settings) - driver_hash = msg_hash_calculate(settings->video.driver); - - switch (driver_hash) - { - case MENU_LABEL_VIDEO_DRIVER_GL: - snprintf(s, len, - "Driver de Vídeo OpenGL. \n" - " \n" - "Esse driver permite o uso de cores libretro GL \n" - "em adição às implementações de cores de \n" - "renderização por software.\n" - " \n" - "O desempenho das implementações dos cores de\n" - "renderização por software e libretro GL \n" - "depende do driver GL instalado em sua \n" - "placa de vídeo."); - break; - case MENU_LABEL_VIDEO_DRIVER_SDL2: - snprintf(s, len, - "Driver de Vídeo SDL 2.\n" - " \n" - "Esse é um driver de vídeo SDL 2 de \n" - "renderização por software.\n" - " \n" - "O desempenho das implementações dos cores de \n" - "renderização por software depende da \n" - "implementação SDL de sua plataforma."); - break; - case MENU_LABEL_VIDEO_DRIVER_SDL1: - snprintf(s, len, - "Driver de Vídeo SDL.\n" - " \n" - "Esse é um driver de vídeo SDL 1.2 de \n" - "renderização por software.\n" - " \n" - "O desemprenho é considerado subótimo. \n" - "Considere seu uso apenas em último caso."); - break; - case MENU_LABEL_VIDEO_DRIVER_D3D: - snprintf(s, len, - "Driver de Vídeo Direct3D. \n" - " \n" - "O desempenho das implementações dos cores de\n" - "renderização por software depende do driver \n" - "D3D instalado em sua placa de vídeo."); - break; - case MENU_LABEL_VIDEO_DRIVER_EXYNOS: - snprintf(s, len, - "Driver de Vídeo Exynos-G2D. \n" - " \n" - "Esse é um driver de vídeo Exynos de baixo nível. \n" - "Usa o bloco G2D do SoC Samsung Exynos \n" - "para operações de blit. \n" - " \n" - "O desempenho para cores de renderização por \n" - "software deve ser ótimo."); - break; - case MENU_LABEL_VIDEO_DRIVER_SUNXI: - snprintf(s, len, - "Driver de Vídeo Sunxi-G2D. \n" - " \n" - "Esse é um driver de vídeo Sunxi de baixo nível. \n" - "Usa o bloco G2D dos SoCs Allwinner."); - break; - default: - snprintf(s, len, - "Driver de Vídeo em uso."); - break; - } - break; - case MENU_LABEL_AUDIO_DSP_PLUGIN: - snprintf(s, len, - "Plugin de DSP de Áudio.\n" - "Processa áudio antes de ser enviado ao \n" - "driver." - ); - break; - case MENU_LABEL_AUDIO_RESAMPLER_DRIVER: - if (settings) - driver_hash = msg_hash_calculate(settings->audio.resampler); - - switch (driver_hash) - { - case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_SINC: - snprintf(s, len, - "Implementação Windowed SINC."); - break; - case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_CC: - snprintf(s, len, - "Implementação Convoluted Cosine."); - break; - } - break; - case MENU_LABEL_VIDEO_SHADER_PRESET: - snprintf(s, len, - "Carregar Predefinições de Shader. \n" - " \n" - " Carregar predefinições em " -#ifdef HAVE_CG - "Cg" -#endif -#ifdef HAVE_GLSL -#ifdef HAVE_CG - "/" -#endif - "GLSL" -#endif -#ifdef HAVE_HLSL -#if defined(HAVE_CG) || defined(HAVE_HLSL) - "/" -#endif - "HLSL" -#endif - " diretamente. \n" - "O menu de shaders é atualizado de acordo. \n" - " \n" - "Se o CGP usar métodos de interpolação complexos, \n" - "(fator de escala diferente para X e Y) o fator \n" - "de escala mostrado no menu poderá não ser \n" - "correto." - ); - break; - case MENU_LABEL_VIDEO_SHADER_SCALE_PASS: - snprintf(s, len, - "Escala para este passo. \n" - " \n" - "O fator de escala se acumula, i.e. 2x \n" - "para o primeiro passo e 2x para o segundo \n" - "vai lhe fornecer uma escala total de 4x. \n" - " \n" - "Se houver um fator de escala no último \n" - "passo, o resultado será esticado na tela \n" - "com o filtro especificado em 'Filtro \n" - "Padrão'. \n" - " \n" - "Se 'Tanto faz' estiver definido, a escala \n" - "de 1x ou o esticamento para tela cheia serão \n" - "usados dependendo se o primeiro foi ou não \n" - "definido no último passo." - ); - break; - case MENU_LABEL_VIDEO_SHADER_NUM_PASSES: - snprintf(s, len, - "Número de Shaders. \n" - " \n" - "O RetroArch permite que você combine vários \n" - "shaders com número arbitrário de passos, filtros \n" - "de hardware e fatores de escala personalizados. \n" - " \n" - "Essa opção especifica o número de passos a usar. \n" - "Se for definido como 0 e usada a opção Aplicar \n" - "Alterações de Shaders, será usado um shader vazio. \n" - " \n" - "A opção Filtro Padrão irá afetar o filtro \n" - "de esticamento."); - break; - case MENU_LABEL_VIDEO_SHADER_PARAMETERS: - snprintf(s, len, - "Parâmetros de Shaders. \n" - " \n" - "Modifica o shader em uso diretamente. Não será \n" - "salvo no arquivo de predefinições CGP/GLSLP."); - break; - case MENU_LABEL_VIDEO_SHADER_PRESET_PARAMETERS: - snprintf(s, len, - "Parâmetros de Predefinições de Shader. \n" - " \n" - "Modifica as predefinições de shader em uso no menu." - ); - break; - case MENU_LABEL_VIDEO_SHADER_PASS: - snprintf(s, len, - "Caminho do shader. \n" - " \n" - "Todos os shaders devem ser do mesmo \n" - "tipo (i.e. CG, GLSL ou HLSL). \n" - " \n" - "Defina o Diretório de Shaders para indicar \n" - "onde o buscador começa a procurar pelos \n" - "shaders." - ); - break; - case MENU_LABEL_CONFIG_SAVE_ON_EXIT: - snprintf(s, len, - "Salva configuração ao sair. Útil para\n" - "o menu, pois as definições podem ser\n" - "modificadas. Sobrescreve a configuração.\n" - " \n" - "#includes e comentários não são \n" - "preservados. \n" - " \n" - "Por design, o arquivo de configuração \n" - "é considerado imutável, pois ele é \n" - "provavelmente mantido pelo usuário, \n" - "e não deve ser sobrescrito sem o \n" - "seu conhecimento." -#if defined(RARCH_CONSOLE) || defined(RARCH_MOBILE) - "\nPorém, isso não funciona assim nos \n" - "consoles, pois abrir o arquivo de \n" - "configuração manualmente não é \n" - "realmente uma opção." -#endif - ); - break; - case MENU_LABEL_VIDEO_SHADER_FILTER_PASS: - snprintf(s, len, - "Filtro de hardware para este passo. \n" - " \n" - "Se 'Tanto faz' estiver definido, o 'Filtro \n" - "Padrão' será usado." - ); - break; - case MENU_LABEL_AUTOSAVE_INTERVAL: - snprintf(s, len, - "Salva automaticamente a SRAM \n" - "em intervalos regulares.\n" - " \n" - "Está desativado por padrão. O intervalo é \n" - "medido em segundos. \n" - " \n" - "Um valor de 0 desativa o salvamento \n" - "automático."); - break; - case MENU_LABEL_INPUT_BIND_DEVICE_TYPE: - snprintf(s, len, - "Tipo de Dispositivo de Entrada. \n" - " \n" - "Escolhe o dispositivo a usar. Isso é \n" - "relevante para o core libretro." - ); - break; - case MENU_LABEL_LIBRETRO_LOG_LEVEL: - snprintf(s, len, - "Define o nível de registro para os cores \n" - "(GET_LOG_INTERFACE). \n" - " \n" - " Se o nível de registro de um core \n" - " libretro estiver abaixo de libretro_log, \n" - " esse será ignorado.\n" - " \n" - " Registros DEBUG são sempre ignorados a menos \n" - " que o modo prolixo seja ativado (--verbose).\n" - " \n" - " DEBUG = 0\n" - " INFO = 1\n" - " WARN = 2\n" - " ERROR = 3" - ); - break; - case MENU_LABEL_STATE_SLOT_INCREASE: - case MENU_LABEL_STATE_SLOT_DECREASE: - snprintf(s, len, - "Slot de Savestates.\n" - " \n" - " Com o slot definido em 0, o nome do Savestate \n" - " será *.state (ou o que estiver definido em commandline).\n" - "Se diferente de 0, o nome será (caminho)(d), \n" - "em que (d) é o número do slot."); - break; - case MENU_LABEL_SHADER_APPLY_CHANGES: - snprintf(s, len, - "Aplicar Alterações de Shaders. \n" - " \n" - "Após alterar definições de shaders, use-o para \n" - "aplicar as mudanças. \n" - " \n" - "Mudar definições de shaders é uma operação \n" - "computacionalmente cara e deve ser \n" - "realizada explicitamente. \n" - " \n" - "Quando se aplicam shaders, as definições do menu \n" - "de shaders são salvas em um arquivo temporário \n" - "(menu.cgp ou menu.glslp) e carregadas. O arquivo \n" - "persiste ao fechar o RetroArch. Ele é salvo \n" - "no Diretório de Shaders." - ); - break; - case MENU_LABEL_INPUT_BIND_DEVICE_ID: - snprintf(s, len, - "Dispositivo de Entrada. \n" - " \n" - "Escolhe um gamepad para o usuário N. \n" - "O nome do pad está disponível." - ); - break; - case MENU_LABEL_MENU_TOGGLE: - snprintf(s, len, - "Alterna menu."); - break; - case MENU_LABEL_GRAB_MOUSE_TOGGLE: - snprintf(s, len, - "Alterna uso de mouse.\n" - " \n" - "Quando o mouse é usado, RetroArch o esconde e \n" - "mantém o seu ponteiro dentro da janela para \n" - "permitir que a entrada relativa do mouse \n" - "funcione melhor."); - break; - case MENU_LABEL_DISK_NEXT: - snprintf(s, len, - "Circula por imagens de discos. Usar \n" - "após ejetar. \n" - " \n" - " Finaliza ao usar ejetar novamente."); - break; - case MENU_LABEL_VIDEO_FILTER: -#ifdef HAVE_FILTERS_BUILTIN - snprintf(s, len, - "Filtro de vídeo baseado em CPU."); -#else - snprintf(s, len, - "Filtro de vídeo baseado em CPU.\n" - " \n" - "Caminho para uma biblioteca dinâmica."); -#endif - break; - case MENU_LABEL_AUDIO_DEVICE: - snprintf(s, len, - "Sobrepõe-se ao dispositivo de áudio padrão \n" - "que está em uso.\n" - "É dependente do driver. \n" -#ifdef HAVE_ALSA - " \n" - "ALSA precisa de um dispositivo PCM." -#endif -#ifdef HAVE_OSS - " \n" - "OSS precisa de um caminho (ex.: /dev/dsp)." -#endif -#ifdef HAVE_JACK - " \n" - "JACK precisa de portas (ex.: system:playback1\n" - ",system:playback_2)." -#endif -#ifdef HAVE_RSOUND - " \n" - "RSound precisa de um endereço IP para \n" - "servidor RSound." -#endif - ); - break; - case MENU_LABEL_DISK_EJECT_TOGGLE: - snprintf(s, len, - "Alterna ejeção para discos.\n" - " \n" - "Usado para conteúdos multidiscos."); - break; - case MENU_LABEL_ENABLE_HOTKEY: - snprintf(s, len, - "Ativar outras hotkeys.\n" - " \n" - " Se esta hotkey é usada por teclado, joybutton \n" - "ou joyaxis, todas as outras hotkeys serão \n" - "desativadas a menos que esta hotkey esteja sendo \n" - "usada ao mesmo tempo. \n" - " \n" - "Isso é útil para implementações RETRO_KEYBOARD que \n" - "consultam uma grande área do teclado, cujo caminho \n" - "deve estar livre das hotkeys."); - break; - case MENU_LABEL_REWIND_ENABLE: - snprintf(s, len, - "Ativa retrocesso.\n" - " \n" - "Essa opção causa uma perda de desempenho, \n" - "por isso está desativada por padrão."); - break; - case MENU_LABEL_LIBRETRO_DIR_PATH: - snprintf(s, len, - "Diretórios de Cores. \n" - " \n" - "Um diretório onde são buscadas as \n" - "implementações de cores libretro."); - break; - case MENU_LABEL_VIDEO_REFRESH_RATE_AUTO: - { - /* Work around C89 limitations */ - char u[501]; - char t[501]; - snprintf(u, sizeof(u), - "Taxa de Atualização Automática.\n" - " \n" - "A taxa de atualização exata de nosso monitor (Hz).\n" - "É usada para calcular a taxa de entrada de áudio \n" - "com a fórmula: \n" - " \n" - "audio_input_rate = game input rate * display \n" - "refresh rate / game refresh rate\n" - " \n"); - snprintf(t, sizeof(t), - "Se a implementação não informar valores, \n" - "valores NTSC serão assumidos por questão de \n" - "compatibilidade.\n" - " \n" - "Esse valor deve ficar próximo de 60Hz para \n" - "evitar grande mudanças de pitch. Se o monitor \n" - "não rodar a 60Hz, ou algo próximo a isso, desative\n" - "o VSync, e deixe-o com valores padrão."); - strlcat(s, u, len); - strlcat(s, t, len); - } - break; - case MENU_LABEL_VIDEO_ROTATION: - snprintf(s, len, - "Força uma certa rotação da tela. \n" - " \n" - "A rotação é adicionada a outras definidas\n" - "por conjuntos de cores (veja Permitir\n" - "Rotação de Vídeo)."); - break; - case MENU_LABEL_VIDEO_SCALE: - snprintf(s, len, - "Resolução de tela cheia.\n" - " \n" - "Resolução 0 usa a resolução \n" - "do ambiente.\n"); - break; - case MENU_LABEL_FASTFORWARD_RATIO: - snprintf(s, len, - "Taxa de Avanço Rápido." - " \n" - "A taxa máxima na qual o conteúdo será\n" - "executado ao se usar o Avanço Rápido.\n" - " \n" - " (Ex.: 5.0 para conteúdo 60 fps => 300 fps \n" - "máximo).\n" - " \n" - "RetroArch entra em modo sleep para assegurar \n" - "que a taxa máxima não será excedida.\n" - "Não confie que esse teto tenha exatidão \n" - "perfeita."); - break; - case MENU_LABEL_VIDEO_MONITOR_INDEX: - snprintf(s, len, - "Preferência de monitor.\n" - " \n" - "0 (padrão) significa nenhum monitor é \n" - "preferido, 1 e demais (1 é o primeiro \n" - "monitor), sugere ao RetroArch usar esse \n" - "monitor em particular."); - break; - case MENU_LABEL_VIDEO_CROP_OVERSCAN: - snprintf(s, len, - "Força o descarte de quadros overscanned. \n" - " \n" - "O comportamento exato dessa opção é \n" - "específico da implementação do core."); - break; - case MENU_LABEL_VIDEO_SCALE_INTEGER: - snprintf(s, len, - "Só interpola vídeo em escalas múltiplas \n" - "inteiras da resolução nativa.\n" - " \n" - "O tamanho base depende da geometria e da \n" - "relação de aspecto informadas pelo sistema.\n" - " \n" - "Se Forçar Aspecto não estiver definida, X/Y \n" - "serão escalonados em inteiros independentemente."); - break; - case MENU_LABEL_AUDIO_VOLUME: - snprintf(s, len, - "Volume de Áudio, em dB.\n" - " \n" - " 0 dB é o volume normal. Nenhum ganho aplicado.\n" - "O ganho pode ser controlado em execução com \n" - "Aumentar Volume / Baixar Volume."); - break; - case MENU_LABEL_AUDIO_RATE_CONTROL_DELTA: - snprintf(s, len, - "Controle de taxa de áudio.\n" - " \n" - "Definindo como 0 desativa o controle de taxa.\n" - "Outros valores controlam a variação da taxa \n" - "de áudio.\n" - " \n" - "Define quanto de taxa de entrada pode ser \n" - "regulada dinamicamente.\n" - " \n" - " Taxa de entrada é definida como: \n" - " input rate * (1.0 +/- (rate control delta))"); - break; - case MENU_LABEL_AUDIO_MAX_TIMING_SKEW: - snprintf(s, len, - "Distorção de áudio máxima.\n" - " \n" - "Define a máxima variação da taxa de entrada.\n" - "Você pode querer aumentá-la para obter grandes\n" - "variações no compasso, por exemplo, ao rodar\n" - "cores PAL em telas NTSC, ao custo de um pitch\n" - "de áudio inexato.\n" - " \n" - " A taxa de entrada é definida como: \n" - " input rate * (1.0 +/- (max timing skew))"); - break; - case MENU_LABEL_OVERLAY_NEXT: - snprintf(s, len, - "Alterna para o próximo overlay.\n" - " \n" - "Navegação circular."); - break; - case MENU_LABEL_LOG_VERBOSITY: - snprintf(s, len, - "Ativa ou desativa nível de prolixidade \n" - "do frontend."); - break; - case MENU_LABEL_VOLUME_UP: - snprintf(s, len, - "Aumenta o volume de áudio."); - break; - case MENU_LABEL_VOLUME_DOWN: - snprintf(s, len, - "Baixa o volume de áudio."); - break; - case MENU_LABEL_VIDEO_DISABLE_COMPOSITION: - snprintf(s, len, - "Desativa composition à força.\n" - "Válido somente para Windows Vista/7 atualmente."); - break; - case MENU_LABEL_PERFCNT_ENABLE: - snprintf(s, len, - "Ativa ou desativa contadores de desempenho \n" - "do frontend."); - break; - case MENU_LABEL_SYSTEM_DIRECTORY: - snprintf(s, len, - "Diretório system. \n" - " \n" - "Define o diretório 'system'.\n" - "Cores podem consultar esse diretório\n" - "para carregar BIOS, configurações\n" - "específicas de sistemas, etc."); - break; - case MENU_LABEL_SAVESTATE_AUTO_SAVE: - snprintf(s, len, - "Automaticamente salva um Savestate ao fechar \n" - "o RetroArch.\n" - " \n" - "RetroArch carregará automaticamente qualquer\n" - "Savestate com esse caminho ao iniciar se 'Carregar\n" - "Savestate Automaticamente' estiver ativado."); - break; - case MENU_LABEL_VIDEO_THREADED: - snprintf(s, len, - "Usa driver de vídeo em thread.\n" - " \n" - "Usando isso pode melhorar o desempenho ao \n" - "possível custo de latência e mais engasgos \n" - "de vídeo."); - break; - case MENU_LABEL_VIDEO_VSYNC: - snprintf(s, len, - "Sincronismo Vertical de vídeo.\n"); - break; - case MENU_LABEL_VIDEO_HARD_SYNC: - snprintf(s, len, - "Tenta sincronizar CPU com GPU via \n" - "hardware.\n" - " \n" - "Pode reduzir a latência ao custo de \n" - "desempenho."); - break; - case MENU_LABEL_REWIND_GRANULARITY: - snprintf(s, len, - "Granularidade do retrocesso.\n" - " \n" - " Ao retroceder um número definido de \n" - "quadros, você pode retroceder vários \n" - "quadros por vez, aumentando a velocidade \n" - "de retrocesso."); - break; - case MENU_LABEL_SCREENSHOT: - snprintf(s, len, - "Tira uma foto da tela."); - break; - case MENU_LABEL_VIDEO_FRAME_DELAY: - snprintf(s, len, - "Define quantos milissegundos retardar \n" - "após o VSync antes de executar o core.\n" - "\n" - "Pode reduzir a latência ao custo de\n" - "um maior risco de engasgo de vídeo.\n" - " \n" - "O valor máximo é 15."); - break; - case MENU_LABEL_VIDEO_HARD_SYNC_FRAMES: - snprintf(s, len, - "Define quantos quadros a CPU pode rodar \n" - "adiante da GPU com a opção 'Sincronismo \n" - "de GPU via Hardware' ativada.\n" - " \n" - "O valor máximo é 3.\n" - " \n" - " 0: Sincroniza com GPU de imediato.\n" - " 1: Sincroniza com quadro anterior.\n" - " 2: Etc ..."); - break; - case MENU_LABEL_VIDEO_BLACK_FRAME_INSERTION: - snprintf(s, len, - "Insere um quadro preto entre quadros. \n" - " \n" - "Útil para monitores de 120 Hz ao rodar \n" - "material de 60 Hz com eliminação do efeito \n" - "'ghosting'.\n" - " \n" - "A taxa de atualização de vídeo deve ainda \n" - "ser configurada como se fosse um monitor de \n" - "60 Hz (divida a taxa de atualização por 2)."); - break; - case MENU_LABEL_RGUI_SHOW_START_SCREEN: - snprintf(s, len, - "Mostra a tela inicial no menu.\n" - "É definida automaticamente como falso quando\n" - "vista pela primeira vez.\n" - " \n" - "É atualizada na configuração apenas quando a\n" - "opção 'Salvar Configuração ao Sair' está ativada.\n"); - break; - case MENU_LABEL_CORE_SPECIFIC_CONFIG: - snprintf(s, len, - "Carrega uma configuração específica baseada \n" - "no core que está sendo usado.\n"); - break; - case MENU_LABEL_VIDEO_FULLSCREEN: - snprintf(s, len, "Alterna tela cheia."); - break; - case MENU_LABEL_BLOCK_SRAM_OVERWRITE: - snprintf(s, len, - "Previne SRAM de ser sobrescrita ao \n" - "carregar Savestates.\n" - " \n" - "Pode potencialmente levar a jogos bugados."); - break; - case MENU_LABEL_PAUSE_NONACTIVE: - snprintf(s, len, - "Pausa a jogatina quando o foco da janela \n" - "é perdido."); - break; - case MENU_LABEL_VIDEO_GPU_SCREENSHOT: - snprintf(s, len, - "Captura material gráfico de saída da \n" - "GPU se estiver disponível."); - break; - case MENU_LABEL_SCREENSHOT_DIRECTORY: - snprintf(s, len, - "Diretório de Capturas de Tela. \n" - " \n" - "Diretório para guardar as capturas de tela." - ); - break; - case MENU_LABEL_VIDEO_SWAP_INTERVAL: - snprintf(s, len, - "Intervalo de Troca de VSync.\n" - " \n" - "Usa um intervalo de troca personalizado. \n" - "Use-e para reduzir à metade a taxa de \n" - "atualização do monitor."); - break; - case MENU_LABEL_SAVEFILE_DIRECTORY: - snprintf(s, len, - "Diretório de Saves. \n" - " \n" - "Salva todos os arquivos de save (*.srm) nesse \n" - "diretório. Isso inclui arquivos relacionados \n" - "como .bsv, .rt, .psrm, etc...\n" - " \n" - "Pode ser sobreposto por opções explícitas de\n" - "linha de comando."); - break; - case MENU_LABEL_SAVESTATE_DIRECTORY: - snprintf(s, len, - "Diretório de Savestates. \n" - " \n" - "Salva todos os Savestates (*.state) nesse \n" - "diretório.\n" - " \n" - "Pode ser sobreposto por opções explícitas de\n" - "linha de comando."); - break; - case MENU_LABEL_ASSETS_DIRECTORY: - snprintf(s, len, - "Diretório de Recursos (Assets). \n" - " \n" - " Essa localização é consultada quando se \n" - "tenta buscar pelo menu recursos (assets) \n" - "carregáveis, etc."); - break; - case MENU_LABEL_DYNAMIC_WALLPAPERS_DIRECTORY: - snprintf(s, len, - "Diretório de Papéis de Parede Dinâmicos. \n" - " \n" - " O lugar para armazenar papéis de parede que \n" - "serão carregados dinamicamente pelo menu \n" - "dependendo do contexto."); - break; - case MENU_LABEL_SLOWMOTION_RATIO: - snprintf(s, len, - "Taxa de câmera lenta." - " \n" - "Quando ativado, o conteúdo rodará em velocidade\n" - "reduzida por um fator."); - break; - case MENU_LABEL_INPUT_AXIS_THRESHOLD: - snprintf(s, len, - "Define o limiar de eixo.\n" - " \n" - "O quanto deve ser torcido um eixo para\n" - "resultar em um botão pressionado.\n" - " Valores possíveis são [0.0, 1.0]."); - break; - case MENU_LABEL_INPUT_TURBO_PERIOD: - snprintf(s, len, - "Período de turbo.\n" - " \n" - "Descreve a velocidade na qual se alternam\n" - "os botões com turbo ativado." - ); - break; - case MENU_LABEL_INPUT_AUTODETECT_ENABLE: - snprintf(s, len, - "Ativa autodetecção de entrada.\n" - " \n" - "Tentará autoconfigurar joypads \n" - "em um estilo Plug-and-Play."); - break; - case MENU_LABEL_CAMERA_ALLOW: - snprintf(s, len, - "Autorizar ou desautorizar o acesso da câmera \n" - "pelos cores."); - break; - case MENU_LABEL_LOCATION_ALLOW: - snprintf(s, len, - "Autorizar ou desautorizar o acesso de \n" - "serviços de localização pelos cores."); - break; - case MENU_LABEL_TURBO: - snprintf(s, len, - "Ativar turbo.\n" - " \n" - "Segurando o turbo enquanto se pressiona outro \n" - "botão permitirá que o botão entre em modo \n" - "turbo em que o seu estado será modulado com \n" - "um sinal periódico. \n" - " \n" - "A modulação pára quando o próprio botão \n" - "(não é o botão de turbo) é solto."); - break; - case MENU_LABEL_OSK_ENABLE: - snprintf(s, len, - "Ativar/desativar teclado na tela."); - break; - case MENU_LABEL_AUDIO_MUTE: - snprintf(s, len, - "Ligar/desligar áudio."); - break; - case MENU_LABEL_REWIND: - snprintf(s, len, - "Segure o botão para retroceder.\n" - " \n" - "Retrocesso deve estar ativado."); - break; - case MENU_LABEL_EXIT_EMULATOR: - snprintf(s, len, - "Tecla para sair corretamente do RetroArch." -#if !defined(RARCH_MOBILE) && !defined(RARCH_CONSOLE) - "\nFechando-o de outra forma mais agressiva \n" - "(SIGKILL, etc) sairá sem salvar RAM, etc.\n" - "Em sistemas baseados em Unix,\n" - "SIGINT/SIGTERM permite um\n" - "fechamento correto." -#endif - ); - break; - case MENU_LABEL_LOAD_STATE: - snprintf(s, len, - "Carrega Savestates."); - break; - case MENU_LABEL_SAVE_STATE: - snprintf(s, len, - "Salva Savestates."); - break; - case MENU_LABEL_NETPLAY_FLIP_PLAYERS: - snprintf(s, len, - "Netplay inverte usuários."); - break; - case MENU_LABEL_CHEAT_INDEX_PLUS: - snprintf(s, len, - "Incrementa o índice de cheats.\n"); - break; - case MENU_LABEL_CHEAT_INDEX_MINUS: - snprintf(s, len, - "Decrementa o índice de cheats.\n"); - break; - case MENU_LABEL_SHADER_PREV: - snprintf(s, len, - "Aplica o shader anterior no diretório."); - break; - case MENU_LABEL_SHADER_NEXT: - snprintf(s, len, - "Aplica o próximo shader no diretório."); - break; - case MENU_LABEL_RESET: - snprintf(s, len, - "Reinicia o conteúdo.\n"); - break; - case MENU_LABEL_PAUSE_TOGGLE: - snprintf(s, len, - "Alterna estado de pausado e não pausado."); - break; - case MENU_LABEL_CHEAT_TOGGLE: - snprintf(s, len, - "Alterna índice de cheats.\n"); - break; - case MENU_LABEL_HOLD_FAST_FORWARD: - snprintf(s, len, - "Segure para avanço rápido. Soltando o botão \n" - "desativa o avanço rápido."); - break; - case MENU_LABEL_SLOWMOTION: - snprintf(s, len, - "Segure para câmera lenta."); - break; - case MENU_LABEL_FRAME_ADVANCE: - snprintf(s, len, - "O quadro avança quando o conteúdo está pausado."); - break; - case MENU_LABEL_MOVIE_RECORD_TOGGLE: - snprintf(s, len, - "Alterna entre estar gravando ou não."); - break; - case MENU_LABEL_L_X_PLUS: - case MENU_LABEL_L_X_MINUS: - case MENU_LABEL_L_Y_PLUS: - case MENU_LABEL_L_Y_MINUS: - case MENU_LABEL_R_X_PLUS: - case MENU_LABEL_R_X_MINUS: - case MENU_LABEL_R_Y_PLUS: - case MENU_LABEL_R_Y_MINUS: - snprintf(s, len, - "Eixo para o analógico (esquema DualShock).\n" - " \n" - "Associa normalmente, porém, se um analógico real \n" - "é associado, pode ser lido como um analógico\n" - "verdadeiro. \n" - " \n" - "Eixo positivo X é para direita. \n" - "Eixo positivo Y é para baixo."); - break; - default: - if (s[0] == '\0') - strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); - return -1; - } - - return 0; -} diff --git a/menu/intl/menu_hash_us.c b/menu/intl/menu_hash_us.c deleted file mode 100644 index 47986fd95f..0000000000 --- a/menu/intl/menu_hash_us.c +++ /dev/null @@ -1,1102 +0,0 @@ -/* RetroArch - A frontend for libretro. - * Copyright (C) 2011-2016 - 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 . - */ - -#include -#include - -#include -#include - -#include "../menu_hash.h" -#include "../../msg_hash.h" -#include "../../configuration.h" - -int menu_hash_get_help_us(uint32_t hash, char *s, size_t len) -{ - uint32_t driver_hash = 0; - settings_t *settings = config_get_ptr(); - - switch (hash) - { - case MENU_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC: - { - /* Work around C89 limitations */ - char u[501]; - char t[501]; - - strlcpy(t, - "RetroArch relies on an unique form of\n" - "audio/video synchronization where it needs to be\n" - "calibrated against the refresh rate of your\n" - "display for best performance results.\n" - " \n" - "If you experience any audio crackling or video\n" - "tearing, usually it means that you need to\n" - "calibrate the settings. Some choices below:\n" - " \n", sizeof(t)); - snprintf(u, sizeof(u), - "a) Go to '%s' -> '%s', and enable\n" - "'Threaded Video'. Refresh rate will not matter\n" - "in this mode, framerate will be higher,\n" - "but video might be less smooth.\n" - "b) Go to '%s' -> '%s', and look at\n" - "'%s'. Let it run for\n" - "2048 frames, then press 'OK'.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_REFRESH_RATE_AUTO)); - strlcat(s, t, len); - strlcat(s, u, len); - } - break; - case MENU_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC: - snprintf(s, len, - "To scan for content, go to '%s' and\n" - "select either '%s' or %s'.\n" - " \n" - "Files will be compared to database entries.\n" - "If there is a match, it will add an entry\n" - "to a collection.\n" - " \n" - "You can then easily access this content by\n" - "going to '%s' ->\n" - "'%s'\n" - "instead of having to go through the\n" - "filebrowser everytime.\n" - " \n" - "NOTE: Content for some cores might still not be\n" - "scannable. Examples include: \n" - "MAME, FBA, and maybe others." - , - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ADD_CONTENT_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_DIRECTORY), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_FILE), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CONTENT_COLLECTION_LIST) - ); - break; - case MENU_LABEL_VALUE_MENU_CONTROLS_PROLOG: - snprintf(s, len, - "You can use the following controls below \n" - "on either your gamepad or keyboard in order\n" - "to control the menu: \n" - " \n" - ); - break; - case MENU_LABEL_VALUE_EXTRACTING_PLEASE_WAIT: - snprintf(s, len, - "Welcome to RetroArch\n" - "\n" - "Extracting assets, please wait.\n" - "This might take a while...\n" - ); - break; - case MENU_LABEL_WELCOME_TO_RETROARCH: - snprintf(s, len, - "Welcome to RetroArch\n" - ); - break; - case MENU_LABEL_INPUT_DRIVER: - if (settings) - driver_hash = msg_hash_calculate(settings->input.driver); - - switch (driver_hash) - { - case MENU_LABEL_INPUT_DRIVER_UDEV: - snprintf(s, len, - "udev Input driver. \n" - " \n" - "This driver can run without X. \n" - " \n" - "It uses the recent evdev joypad API \n" - "for joystick support. It supports \n" - "hotplugging and force feedback (if \n" - "supported by device). \n" - " \n" - "The driver reads evdev events for keyboard \n" - "support. It also supports keyboard callback, \n" - "mice and touchpads. \n" - " \n" - "By default in most distros, /dev/input nodes \n" - "are root-only (mode 600). You can set up a udev \n" - "rule which makes these accessible to non-root." - ); - break; - case MENU_LABEL_INPUT_DRIVER_LINUXRAW: - snprintf(s, len, - "linuxraw Input driver. \n" - " \n" - "This driver requires an active TTY. Keyboard \n" - "events are read directly from the TTY which \n" - "makes it simpler, but not as flexible as udev. \n" "Mice, etc, are not supported at all. \n" - " \n" - "This driver uses the older joystick API \n" - "(/dev/input/js*)."); - break; - default: - snprintf(s, len, - "Input driver.\n" - " \n" - "Depending on video driver, it might \n" - "force a different input driver."); - break; - } - break; - case MENU_LABEL_LOAD_CONTENT: - snprintf(s, len, - "Load Content. \n" - "Browse for content. \n" - " \n" - "To load content, you need a \n" - "'Core' to use, and a content file.\n" - " \n" - "To control where the menu starts \n" - " to browse for content, set \n" - "'File Browser Directory'. \n" - "If not set, it will start in root. \n" - " \n" - "The browser will filter out \n" - "extensions for the last core set \n" - "in 'Load Core', and use that core \n" - "when content is loaded." - ); - break; - case MENU_LABEL_CORE_LIST: - snprintf(s, len, - "Load Core. \n" - " \n" - "Browse for a libretro core \n" - "implementation. Where the browser \n" - "starts depends on your Core Directory \n" - "path. If blank, it will start in root. \n" - " \n" - "If Core Directory is a directory, the menu \n" - "will use that as top folder. If Core \n" - "Directory is a full path, it will start \n" - "in the folder where the file is."); - break; - case MENU_LABEL_LOAD_CONTENT_HISTORY: - snprintf(s, len, - "Loading content from history. \n" - " \n" - "As content is loaded, content and libretro \n" - "core combinations are saved to history. \n" - " \n" - "The history is saved to a file in the same \n" - "directory as the RetroArch config file. If \n" - "no config file was loaded in startup, history \n" - "will not be saved or loaded, and will not exist \n" - "in the main menu." - ); - break; - case MENU_LABEL_VIDEO_DRIVER: - if (settings) - driver_hash = msg_hash_calculate(settings->video.driver); - - switch (driver_hash) - { - case MENU_LABEL_VIDEO_DRIVER_GL: - snprintf(s, len, - "OpenGL Video driver. \n" - " \n" - "This driver allows libretro GL cores to \n" - "be used in addition to software-rendered \n" - "core implementations.\n" - " \n" - "Performance for software-rendered and \n" - "libretro GL core implementations is \n" - "dependent on your graphics card's \n" - "underlying GL driver)."); - break; - case MENU_LABEL_VIDEO_DRIVER_SDL2: - snprintf(s, len, - "SDL 2 Video driver.\n" - " \n" - "This is an SDL 2 software-rendered video \n" - "driver.\n" - " \n" - "Performance for software-rendered libretro \n" - "core implementations is dependent \n" - "on your platform SDL implementation."); - break; - case MENU_LABEL_VIDEO_DRIVER_SDL1: - snprintf(s, len, - "SDL Video driver.\n" - " \n" - "This is an SDL 1.2 software-rendered video \n" - "driver.\n" - " \n" - "Performance is considered to be suboptimal. \n" - "Consider using it only as a last resort."); - break; - case MENU_LABEL_VIDEO_DRIVER_D3D: - snprintf(s, len, - "Direct3D Video driver. \n" - " \n" - "Performance for software-rendered cores \n" - "is dependent on your graphic card's \n" - "underlying D3D driver)."); - break; - case MENU_LABEL_VIDEO_DRIVER_EXYNOS: - snprintf(s, len, - "Exynos-G2D Video Driver. \n" - " \n" - "This is a low-level Exynos video driver. \n" - "Uses the G2D block in Samsung Exynos SoC \n" - "for blit operations. \n" - " \n" - "Performance for software rendered cores \n" - "should be optimal."); - break; - case MENU_LABEL_VIDEO_DRIVER_SUNXI: - snprintf(s, len, - "Sunxi-G2D Video Driver. \n" - " \n" - "This is a low-level Sunxi video driver. \n" - "Uses the G2D block in Allwinner SoCs."); - break; - default: - snprintf(s, len, - "Current Video driver."); - break; - } - break; - case MENU_LABEL_AUDIO_DSP_PLUGIN: - snprintf(s, len, - "Audio DSP plugin.\n" - " Processes audio before it's sent to \n" - "the driver." - ); - break; - case MENU_LABEL_AUDIO_RESAMPLER_DRIVER: - if (settings) - driver_hash = msg_hash_calculate(settings->audio.resampler); - - switch (driver_hash) - { - case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_SINC: - snprintf(s, len, - "Windowed SINC implementation."); - break; - case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_CC: - snprintf(s, len, - "Convoluted Cosine implementation."); - break; - } - break; - case MENU_LABEL_VIDEO_SHADER_PRESET: - snprintf(s, len, - "Load Shader Preset. \n" - " \n" - " Load a " -#ifdef HAVE_CG - "Cg" -#endif -#ifdef HAVE_GLSL -#ifdef HAVE_CG - "/" -#endif - "GLSL" -#endif -#ifdef HAVE_HLSL -#if defined(HAVE_CG) || defined(HAVE_HLSL) - "/" -#endif - "HLSL" -#endif - " preset directly. \n" - "The menu shader menu is updated accordingly. \n" - " \n" - "If the CGP uses scaling methods which are not \n" - "simple, (i.e. source scaling, same scaling \n" - "factor for X/Y), the scaling factor displayed \n" - "in the menu might not be correct." - ); - break; - case MENU_LABEL_VIDEO_SHADER_SCALE_PASS: - snprintf(s, len, - "Scale for this pass. \n" - " \n" - "The scale factor accumulates, i.e. 2x \n" - "for first pass and 2x for second pass \n" - "will give you a 4x total scale. \n" - " \n" - "If there is a scale factor for last \n" - "pass, the result is stretched to \n" - "screen with the filter specified in \n" - "'Default Filter'. \n" - " \n" - "If 'Don't Care' is set, either 1x \n" - "scale or stretch to fullscreen will \n" - "be used depending if it's not the last \n" - "pass or not." - ); - break; - case MENU_LABEL_VIDEO_SHADER_NUM_PASSES: - snprintf(s, len, - "Shader Passes. \n" - " \n" - "RetroArch allows you to mix and match various \n" - "shaders with arbitrary shader passes, with \n" - "custom hardware filters and scale factors. \n" - " \n" - "This option specifies the number of shader \n" - "passes to use. If you set this to 0, and use \n" - "Apply Shader Changes, you use a 'blank' shader. \n" - " \n" - "The Default Filter option will affect the \n" - "stretching filter."); - break; - case MENU_LABEL_VIDEO_SHADER_PARAMETERS: - snprintf(s, len, - "Shader Parameters. \n" - " \n" - "Modifies current shader directly. Will not be \n" - "saved to CGP/GLSLP preset file."); - break; - case MENU_LABEL_VIDEO_SHADER_PRESET_PARAMETERS: - snprintf(s, len, - "Shader Preset Parameters. \n" - " \n" - "Modifies shader preset currently in menu." - ); - break; - case MENU_LABEL_VIDEO_SHADER_PASS: - snprintf(s, len, - "Path to shader. \n" - " \n" - "All shaders must be of the same \n" - "type (i.e. CG, GLSL or HLSL). \n" - " \n" - "Set Shader Directory to set where \n" - "the browser starts to look for \n" - "shaders." - ); - break; - case MENU_LABEL_CONFIG_SAVE_ON_EXIT: - snprintf(s, len, - "Saves config to disk on exit.\n" - "Useful for menu as settings can be\n" - "modified. Overwrites the config.\n" - " \n" - "#include's and comments are not \n" - "preserved. \n" - " \n" - "By design, the config file is \n" - "considered immutable as it is \n" - "likely maintained by the user, \n" - "and should not be overwritten \n" - "behind the user's back." -#if defined(RARCH_CONSOLE) || defined(RARCH_MOBILE) - "\nThis is not not the case on \n" - "consoles however, where \n" - "looking at the config file \n" - "manually isn't really an option." -#endif - ); - break; - case MENU_LABEL_VIDEO_SHADER_FILTER_PASS: - snprintf(s, len, - "Hardware filter for this pass. \n" - " \n" - "If 'Don't Care' is set, 'Default \n" - "Filter' will be used." - ); - break; - case MENU_LABEL_AUTOSAVE_INTERVAL: - snprintf(s, len, - "Autosaves the non-volatile SRAM \n" - "at a regular interval.\n" - " \n" - "This is disabled by default unless set \n" - "otherwise. The interval is measured in \n" - "seconds. \n" - " \n" - "A value of 0 disables autosave."); - break; - case MENU_LABEL_INPUT_BIND_DEVICE_TYPE: - snprintf(s, len, - "Input Device Type. \n" - " \n" - "Picks which device type to use. This is \n" - "relevant for the libretro core itself." - ); - break; - case MENU_LABEL_LIBRETRO_LOG_LEVEL: - snprintf(s, len, - "Sets log level for libretro cores \n" - "(GET_LOG_INTERFACE). \n" - " \n" - " If a log level issued by a libretro \n" - " core is below libretro_log level, it \n" - " is ignored.\n" - " \n" - " DEBUG logs are always ignored unless \n" - " verbose mode is activated (--verbose).\n" - " \n" - " DEBUG = 0\n" - " INFO = 1\n" - " WARN = 2\n" - " ERROR = 3" - ); - break; - case MENU_LABEL_STATE_SLOT_INCREASE: - case MENU_LABEL_STATE_SLOT_DECREASE: - snprintf(s, len, - "State slots.\n" - " \n" - " With slot set to 0, save state name is *.state \n" - " (or whatever defined on commandline).\n" - "When slot is != 0, path will be (path)(d), \n" - "where (d) is slot number."); - break; - case MENU_LABEL_SHADER_APPLY_CHANGES: - snprintf(s, len, - "Apply Shader Changes. \n" - " \n" - "After changing shader settings, use this to \n" - "apply changes. \n" - " \n" - "Changing shader settings is a somewhat \n" - "expensive operation so it has to be \n" - "done explicitly. \n" - " \n" - "When you apply shaders, the menu shader \n" - "settings are saved to a temporary file (either \n" - "menu.cgp or menu.glslp) and loaded. The file \n" - "persists after RetroArch exits. The file is \n" - "saved to Shader Directory." - ); - break; - case MENU_LABEL_INPUT_BIND_DEVICE_ID: - snprintf(s, len, - "Input Device. \n" - " \n" - "Picks which gamepad to use for user N. \n" - "The name of the pad is available." - ); - break; - case MENU_LABEL_MENU_TOGGLE: - snprintf(s, len, - "Toggles menu."); - break; - case MENU_LABEL_GRAB_MOUSE_TOGGLE: - snprintf(s, len, - "Toggles mouse grab.\n" - " \n" - "When mouse is grabbed, RetroArch hides the \n" - "mouse, and keeps the mouse pointer inside \n" - "the window to allow relative mouse input to \n" - "work better."); - break; - case MENU_LABEL_DISK_NEXT: - snprintf(s, len, - "Cycles through disk images. Use after \n" - "ejecting. \n" - " \n" - " Complete by toggling eject again."); - break; - case MENU_LABEL_VIDEO_FILTER: -#ifdef HAVE_FILTERS_BUILTIN - snprintf(s, len, - "CPU-based video filter."); -#else - snprintf(s, len, - "CPU-based video filter.\n" - " \n" - "Path to a dynamic library."); -#endif - break; - case MENU_LABEL_AUDIO_DEVICE: - snprintf(s, len, - "Override the default audio device \n" - "the audio driver uses.\n" - "This is driver dependent. E.g.\n" -#ifdef HAVE_ALSA - " \n" - "ALSA wants a PCM device." -#endif -#ifdef HAVE_OSS - " \n" - "OSS wants a path (e.g. /dev/dsp)." -#endif -#ifdef HAVE_JACK - " \n" - "JACK wants portnames (e.g. system:playback1\n" - ",system:playback_2)." -#endif -#ifdef HAVE_RSOUND - " \n" - "RSound wants an IP address to an RSound \n" - "server." -#endif - ); - break; - case MENU_LABEL_DISK_EJECT_TOGGLE: - snprintf(s, len, - "Toggles eject for disks.\n" - " \n" - "Used for multiple-disk content."); - break; - case MENU_LABEL_ENABLE_HOTKEY: - snprintf(s, len, - "Enable other hotkeys.\n" - " \n" - " If this hotkey is bound to either keyboard, \n" - "joybutton or joyaxis, all other hotkeys will \n" - "be disabled unless this hotkey is also held \n" - "at the same time. \n" - " \n" - "This is useful for RETRO_KEYBOARD centric \n" - "implementations which query a large area of \n" - "the keyboard, where it is not desirable that \n" - "hotkeys get in the way."); - break; - case MENU_LABEL_REWIND_ENABLE: - snprintf(s, len, - "Enable rewinding.\n" - " \n" - "This will take a performance hit, \n" - "so it is disabled by default."); - break; - case MENU_LABEL_LIBRETRO_DIR_PATH: - snprintf(s, len, - "Core Directory. \n" - " \n" - "A directory for where to search for \n" - "libretro core implementations."); - break; - case MENU_LABEL_VIDEO_REFRESH_RATE_AUTO: - snprintf(s, len, - "Refresh Rate Auto.\n" - " \n" - "The accurate refresh rate of our monitor (Hz).\n" - "This is used to calculate audio input rate with \n" - "the formula: \n" - " \n" - "audio_input_rate = game input rate * display \n" - "refresh rate / game refresh rate\n" - " \n" - "If the implementation does not report any \n" - "values, NTSC defaults will be assumed for \n" - "compatibility.\n" - " \n" - "This value should stay close to 60Hz to avoid \n" - "large pitch changes. If your monitor does \n" - "not run at 60Hz, or something close to it, \n" - "disable VSync, and leave this at its default."); - break; - case MENU_LABEL_VIDEO_ROTATION: - snprintf(s, len, - "Forces a certain rotation \n" - "of the screen.\n" - " \n" - "The rotation is added to rotations which\n" - "the libretro core sets (see Video Allow\n" - "Rotate)."); - break; - case MENU_LABEL_VIDEO_SCALE: - snprintf(s, len, - "Fullscreen resolution.\n" - " \n" - "Resolution of 0 uses the \n" - "resolution of the environment.\n"); - break; - case MENU_LABEL_FASTFORWARD_RATIO: - snprintf(s, len, - "Fastforward ratio." - " \n" - "The maximum rate at which content will\n" - "be run when using fast forward.\n" - " \n" - " (E.g. 5.0 for 60 fps content => 300 fps \n" - "cap).\n" - " \n" - "RetroArch will go to sleep to ensure that \n" - "the maximum rate will not be exceeded.\n" - "Do not rely on this cap to be perfectly \n" - "accurate."); - break; - case MENU_LABEL_VIDEO_MONITOR_INDEX: - snprintf(s, len, - "Which monitor to prefer.\n" - " \n" - "0 (default) means no particular monitor \n" - "is preferred, 1 and up (1 being first \n" - "monitor), suggests RetroArch to use that \n" - "particular monitor."); - break; - case MENU_LABEL_VIDEO_CROP_OVERSCAN: - snprintf(s, len, - "Forces cropping of overscanned \n" - "frames.\n" - " \n" - "Exact behavior of this option is \n" - "core-implementation specific."); - break; - case MENU_LABEL_VIDEO_SCALE_INTEGER: - snprintf(s, len, - "Only scales video in integer \n" - "steps.\n" - " \n" - "The base size depends on system-reported \n" - "geometry and aspect ratio.\n" - " \n" - "If Force Aspect is not set, X/Y will be \n" - "integer scaled independently."); - break; - case MENU_LABEL_AUDIO_VOLUME: - snprintf(s, len, - "Audio volume, expressed in dB.\n" - " \n" - " 0 dB is normal volume. No gain will be applied.\n" - "Gain can be controlled in runtime with Input\n" - "Volume Up / Input Volume Down."); - break; - case MENU_LABEL_AUDIO_RATE_CONTROL_DELTA: - snprintf(s, len, - "Audio rate control.\n" - " \n" - "Setting this to 0 disables rate control.\n" - "Any other value controls audio rate control \n" - "delta.\n" - " \n" - "Defines how much input rate can be adjusted \n" - "dynamically.\n" - " \n" - " Input rate is defined as: \n" - " input rate * (1.0 +/- (rate control delta))"); - break; - case MENU_LABEL_AUDIO_MAX_TIMING_SKEW: - snprintf(s, len, - "Maximum audio timing skew.\n" - " \n" - "Defines the maximum change in input rate.\n" - "You may want to increase this to enable\n" - "very large changes in timing, for example\n" - "running PAL cores on NTSC displays, at the\n" - "cost of inaccurate audio pitch.\n" - " \n" - " Input rate is defined as: \n" - " input rate * (1.0 +/- (max timing skew))"); - break; - case MENU_LABEL_OVERLAY_NEXT: - snprintf(s, len, - "Toggles to next overlay.\n" - " \n" - "Wraps around."); - break; - case MENU_LABEL_LOG_VERBOSITY: - snprintf(s, len, - "Enable or disable verbosity level \n" - "of frontend."); - break; - case MENU_LABEL_VOLUME_UP: - snprintf(s, len, - "Increases audio volume."); - break; - case MENU_LABEL_VOLUME_DOWN: - snprintf(s, len, - "Decreases audio volume."); - break; - case MENU_LABEL_VIDEO_DISABLE_COMPOSITION: - snprintf(s, len, - "Forcibly disable composition.\n" - "Only valid on Windows Vista/7 for now."); - break; - case MENU_LABEL_PERFCNT_ENABLE: - snprintf(s, len, - "Enable or disable frontend \n" - "performance counters."); - break; - case MENU_LABEL_SYSTEM_DIRECTORY: - snprintf(s, len, - "System Directory. \n" - " \n" - "Sets the 'system' directory.\n" - "Cores can query for this\n" - "directory to load BIOSes, \n" - "system-specific configs, etc."); - break; - case MENU_LABEL_SAVESTATE_AUTO_SAVE: - snprintf(s, len, - "Automatically saves a savestate at the \n" - "end of RetroArch's lifetime.\n" - " \n" - "RetroArch will automatically load any savestate\n" - "with this path on startup if 'Auto Load State\n" - "is enabled."); - break; - case MENU_LABEL_VIDEO_THREADED: - snprintf(s, len, - "Use threaded video driver.\n" - " \n" - "Using this might improve performance at \n" - "possible cost of latency and more video \n" - "stuttering."); - break; - case MENU_LABEL_VIDEO_VSYNC: - snprintf(s, len, - "Video V-Sync.\n"); - break; - case MENU_LABEL_VIDEO_HARD_SYNC: - snprintf(s, len, - "Attempts to hard-synchronize \n" - "CPU and GPU.\n" - " \n" - "Can reduce latency at cost of \n" - "performance."); - break; - case MENU_LABEL_REWIND_GRANULARITY: - snprintf(s, len, - "Rewind granularity.\n" - " \n" - " When rewinding defined number of \n" - "frames, you can rewind several frames \n" - "at a time, increasing the rewinding \n" - "speed."); - break; - case MENU_LABEL_SCREENSHOT: - snprintf(s, len, - "Take screenshot."); - break; - case MENU_LABEL_VIDEO_FRAME_DELAY: - snprintf(s, len, - "Sets how many milliseconds to delay\n" - "after VSync before running the core.\n" - "\n" - "Can reduce latency at cost of\n" - "higher risk of stuttering.\n" - " \n" - "Maximum is 15."); - break; - case MENU_LABEL_VIDEO_HARD_SYNC_FRAMES: - snprintf(s, len, - "Sets how many frames CPU can \n" - "run ahead of GPU when using 'GPU \n" - "Hard Sync'.\n" - " \n" - "Maximum is 3.\n" - " \n" - " 0: Syncs to GPU immediately.\n" - " 1: Syncs to previous frame.\n" - " 2: Etc ..."); - break; - case MENU_LABEL_VIDEO_BLACK_FRAME_INSERTION: - snprintf(s, len, - "Inserts a black frame inbetween \n" - "frames.\n" - " \n" - "Useful for 120 Hz monitors who want to \n" - "play 60 Hz material with eliminated \n" - "ghosting.\n" - " \n" - "Video refresh rate should still be \n" - "configured as if it is a 60 Hz monitor \n" - "(divide refresh rate by 2)."); - break; - case MENU_LABEL_RGUI_SHOW_START_SCREEN: - snprintf(s, len, - "Show startup screen in menu.\n" - "Is automatically set to false when seen\n" - "for the first time.\n" - " \n" - "This is only updated in config if\n" - "'Save Configuration on Exit' is enabled.\n"); - break; - case MENU_LABEL_CORE_SPECIFIC_CONFIG: - snprintf(s, len, - "Load up a specific config file \n" - "based on the core being used.\n"); - break; - case MENU_LABEL_VIDEO_FULLSCREEN: - snprintf(s, len, "Toggles fullscreen."); - break; - case MENU_LABEL_BLOCK_SRAM_OVERWRITE: - snprintf(s, len, - "Block SRAM from being overwritten \n" - "when loading save states.\n" - " \n" - "Might potentially lead to buggy games."); - break; - case MENU_LABEL_PAUSE_NONACTIVE: - snprintf(s, len, - "Pause gameplay when window focus \n" - "is lost."); - break; - case MENU_LABEL_VIDEO_GPU_SCREENSHOT: - snprintf(s, len, - "Screenshots output of GPU shaded \n" - "material if available."); - break; - case MENU_LABEL_SCREENSHOT_DIRECTORY: - snprintf(s, len, - "Screenshot Directory. \n" - " \n" - "Directory to dump screenshots to." - ); - break; - case MENU_LABEL_VIDEO_SWAP_INTERVAL: - snprintf(s, len, - "VSync Swap Interval.\n" - " \n" - "Uses a custom swap interval for VSync. Set this \n" - "to effectively halve monitor refresh rate."); - break; - case MENU_LABEL_SAVEFILE_DIRECTORY: - snprintf(s, len, - "Savefile Directory. \n" - " \n" - "Save all save files (*.srm) to this \n" - "directory. This includes related files like \n" - ".bsv, .rt, .psrm, etc...\n" - " \n" - "This will be overridden by explicit command line\n" - "options."); - break; - case MENU_LABEL_SAVESTATE_DIRECTORY: - snprintf(s, len, - "Savestate Directory. \n" - " \n" - "Save all save states (*.state) to this \n" - "directory.\n" - " \n" - "This will be overridden by explicit command line\n" - "options."); - break; - case MENU_LABEL_ASSETS_DIRECTORY: - snprintf(s, len, - "Assets Directory. \n" - " \n" - " This location is queried by default when \n" - "menu interfaces try to look for loadable \n" - "assets, etc."); - break; - case MENU_LABEL_DYNAMIC_WALLPAPERS_DIRECTORY: - snprintf(s, len, - "Dynamic Wallpapers Directory. \n" - " \n" - " The place to store wallpapers that will \n" - "be loaded dynamically by the menu depending \n" - "on context."); - break; - case MENU_LABEL_SLOWMOTION_RATIO: - snprintf(s, len, - "Slowmotion ratio." - " \n" - "When slowmotion, content will slow\n" - "down by factor."); - break; - case MENU_LABEL_INPUT_AXIS_THRESHOLD: - snprintf(s, len, - "Defines axis threshold.\n" - " \n" - "How far an axis must be tilted to result\n" - "in a button press.\n" - " Possible values are [0.0, 1.0]."); - break; - case MENU_LABEL_INPUT_TURBO_PERIOD: - snprintf(s, len, - "Turbo period.\n" - " \n" - "Describes speed of which turbo-enabled\n" - "buttons toggle." - ); - break; - case MENU_LABEL_INPUT_AUTODETECT_ENABLE: - snprintf(s, len, - "Enable input auto-detection.\n" - " \n" - "Will attempt to auto-configure \n" - "joypads, Plug-and-Play style."); - break; - case MENU_LABEL_CAMERA_ALLOW: - snprintf(s, len, - "Allow or disallow camera access by \n" - "cores."); - break; - case MENU_LABEL_LOCATION_ALLOW: - snprintf(s, len, - "Allow or disallow location services \n" - "access by cores."); - break; - case MENU_LABEL_TURBO: - snprintf(s, len, - "Turbo enable.\n" - " \n" - "Holding the turbo while pressing another \n" - "button will let the button enter a turbo \n" - "mode where the button state is modulated \n" - "with a periodic signal. \n" - " \n" - "The modulation stops when the button \n" - "itself (not turbo button) is released."); - break; - case MENU_LABEL_OSK_ENABLE: - snprintf(s, len, - "Enable/disable on-screen keyboard."); - break; - case MENU_LABEL_AUDIO_MUTE: - snprintf(s, len, - "Mute/unmute audio."); - break; - case MENU_LABEL_REWIND: - snprintf(s, len, - "Hold button down to rewind.\n" - " \n" - "Rewind must be enabled."); - break; - case MENU_LABEL_EXIT_EMULATOR: - snprintf(s, len, - "Key to exit RetroArch cleanly." -#if !defined(RARCH_MOBILE) && !defined(RARCH_CONSOLE) - "\nKilling it in any hard way (SIGKILL, \n" - "etc) will terminate without saving\n" - "RAM, etc. On Unix-likes,\n" - "SIGINT/SIGTERM allows\n" - "a clean deinitialization." -#endif - ); - break; - case MENU_LABEL_LOAD_STATE: - snprintf(s, len, - "Loads state."); - break; - case MENU_LABEL_SAVE_STATE: - snprintf(s, len, - "Saves state."); - break; - case MENU_LABEL_NETPLAY_FLIP_PLAYERS: - snprintf(s, len, - "Netplay flip users."); - break; - case MENU_LABEL_CHEAT_INDEX_PLUS: - snprintf(s, len, - "Increment cheat index.\n"); - break; - case MENU_LABEL_CHEAT_INDEX_MINUS: - snprintf(s, len, - "Decrement cheat index.\n"); - break; - case MENU_LABEL_SHADER_PREV: - snprintf(s, len, - "Applies previous shader in directory."); - break; - case MENU_LABEL_SHADER_NEXT: - snprintf(s, len, - "Applies next shader in directory."); - break; - case MENU_LABEL_RESET: - snprintf(s, len, - "Reset the content.\n"); - break; - case MENU_LABEL_PAUSE_TOGGLE: - snprintf(s, len, - "Toggle between paused and non-paused state."); - break; - case MENU_LABEL_CHEAT_TOGGLE: - snprintf(s, len, - "Toggle cheat index.\n"); - break; - case MENU_LABEL_HOLD_FAST_FORWARD: - snprintf(s, len, - "Hold for fast-forward. Releasing button \n" - "disables fast-forward."); - break; - case MENU_LABEL_SLOWMOTION: - snprintf(s, len, - "Hold for slowmotion."); - break; - case MENU_LABEL_FRAME_ADVANCE: - snprintf(s, len, - "Frame advance when content is paused."); - break; - case MENU_LABEL_MOVIE_RECORD_TOGGLE: - snprintf(s, len, - "Toggle between recording and not."); - break; - case MENU_LABEL_L_X_PLUS: - case MENU_LABEL_L_X_MINUS: - case MENU_LABEL_L_Y_PLUS: - case MENU_LABEL_L_Y_MINUS: - case MENU_LABEL_R_X_PLUS: - case MENU_LABEL_R_X_MINUS: - case MENU_LABEL_R_Y_PLUS: - case MENU_LABEL_R_Y_MINUS: - snprintf(s, len, - "Axis for analog stick (DualShock-esque).\n" - " \n" - "Bound as usual, however, if a real analog \n" - "axis is bound, it can be read as a true analog.\n" - " \n" - "Positive X axis is right. \n" - "Positive Y axis is down."); - break; - case MENU_LABEL_VALUE_WHAT_IS_A_CORE_DESC: - snprintf(s, len, - "RetroArch by itself does nothing. \n" - " \n" - "To make it do things, you need to \n" - "load a program into it. \n" - "\n" - "We call such a program 'Libretro core', \n" - "or 'core' in short. \n" - " \n" - "To load a core, select one from\n" - "'Load Core'.\n" - " \n" -#ifdef HAVE_NETWORKING - "You can obtain cores in several ways: \n" - "* Download them by going to\n" - "'%s' -> '%s'.\n" - "* Manually move them over to\n" - "'%s'.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONLINE_UPDATER), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_UPDATER_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) -#else - "You can obtain cores by\n" - "manually moving them over to\n" - "'%s'.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) -#endif - ); - break; - case MENU_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD_DESC: - snprintf(s, len, - "You can change the virtual gamepad overlay\n" - "by going to '%s' -> '%s'." - " \n" - "From there you can change the overlay,\n" - "change the size and opacity of the buttons, etc.\n" - " \n" - "NOTE: By default, virtual gamepad overlays are\n" - "hidden when in the menu.\n" - "If you'd like to change this behavior,\n" - "you can set '%s' to false.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OVERLAY_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_HIDE_IN_MENU) - ); - default: - if (string_is_empty(s)) - strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); - return -1; - } - - return 0; -} diff --git a/menu/intl/menu_hash_uspseudo.c b/menu/intl/menu_hash_uspseudo.c deleted file mode 100644 index 507fb7f858..0000000000 --- a/menu/intl/menu_hash_uspseudo.c +++ /dev/null @@ -1,1101 +0,0 @@ -/* Autogenerated, do not edit. Your changes will be undone. */ -/* RetroArch - A frontend for libretro. - * Copyright (C) 2011-2016 - 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 . - */ - -#include -#include - -#include -#include - -#include "../menu_hash.h" -#include "../../configuration.h" - -int menu_hash_get_help_us(uint32_t hash, char *s, size_t len) -{ - uint32_t driver_hash = 0; - settings_t *settings = config_get_ptr(); - - switch (hash) - { - case MENU_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC: - { - /* Work around C89 limitations */ - char u[501]; - char t[501]; - - strlcpy(t, - "RetroArch rèlies ön àn uniqúe form of\n" - "audìò/vidèo synçhrônizatìon wheré it needs to bé\n" - "calibratéd agâïnst the refresh rate of yóur\n" - "dìsplay for best perförmancë resùlts.\n" - " \n" - "If ÿou êxperiençe ány audiõ craçkling or videö\n" - "tearing, usùälly it means thât ýoü neëd to\n" - "çalibrate the sëttings. Sõmè çhõices below:\n" - " \n", sizeof(t)); - snprintf(u, sizeof(u), - "a) Go to '%s' -> '%s', and enàble\n" - "'Threaded Video'. Rëfrèsh ráte will nõt matter\n" - "in thîs móde, framërãtè will be highër,\n" - "but vídéo might be less smooth.\n" - "b) Go to '%s' -> '%s', añd loök at\n" - "'%s'. Let it rúñ for\n" - "2048 frãmës, thëñ press 'ÕK'.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_REFRESH_RATE_AUTO)); - strlcat(s, t, len); - strlcat(s, u, len); - } - break; - case MENU_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC: - snprintf(s, len, - "Tô scan for content, go to '%s' and\n" - "select eîther '%s' òr %s'.\n" - " \n" - "Fìles will be çómpäred to databasê entriës.\n" - "If there îs a matçh, ït wïll add an entry\n" - "tø a çöllectíøñ.\n" - " \n" - "Yoû can theñ easilÿ açcess this coñtënt bÿ\n" - "goiñg to '%s' ->\n" - "'%s'\n" - "instèàd of havïñg tø go throûgh the\n" - "filëbròwser everytime.\n" - " \n" - "NOTE: Çontëñt for somé çores might still nöt bë\n" - "scanñablë. Examplës include: \n" - "MAMÈ, FBA, Ã¥nd maybe öthers." - , - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ADD_CONTENT_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_DIRECTORY), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_FILE), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CONTENT_COLLECTION_LIST) - ); - break; - case MENU_LABEL_VALUE_MENU_CONTROLS_PROLOG: - snprintf(s, len, - "Yøu cañ usê the folløwing controls below \n" - "oñ either your gämepâd or këÿboârd in ordër\n" - "to cóñtrol thé mënu: \n" - " \n" - ); - break; - case MENU_LABEL_VALUE_EXTRACTING_PLEASE_WAIT: - snprintf(s, len, - "Wêlcòme tò RetroArçh\n" - "\n" - "Èxtractìng ásséts, please waìt.\n" - "This mïght take a while...\n" - ); - break; - case MENU_LABEL_WELCOME_TO_RETROARCH: - snprintf(s, len, - "Wêlçomé tø RètròArch\n" - "\n" - "Fór further infôrmatioñ, go tõ Help.\n" - ); - break; - case MENU_LABEL_INPUT_DRIVER: - driver_hash = msg_hash_calculate(settings->input.driver); - - switch (driver_hash) - { - case MENU_LABEL_INPUT_DRIVER_UDEV: - snprintf(s, len, - "udèv Inpút dríver. \n" - " \n" - "This driver cán run withoût X. \n" - " \n" - "It úses the rêçent evdèv joypad ÀPI \n" - "fòr joýstiçk support. ÃŒt supports \n" - "hôtplùggïñg ând forcé feedbâçk (îf \n" - "suppørted by deviçe). \n" - " \n" - "The drivër reads êvdèv êvënts for kèyboard \n" - "suppôrt. Ãt alsô süpports keybõard çällbaçk, \n" - "miçe and tøùçhpads. \n" - " \n" - "Bý defáult în most diströs, /dëv/ïnpût ñødes \n" - "âre root-oñlÿ (mode 600). Ãou cân sèt up a udev \n" - "rulé which makes thèsê åççessible to non-root." - ); - break; - case MENU_LABEL_INPUT_DRIVER_LINUXRAW: - snprintf(s, len, - "linuxraw Input driver. \n" - " \n" - "This drïvèr requires an active TTY. Kèyboãrd \n" - "evêñts arë read dìrêçtly from thé TTY which \n" - "makés it simpler, but not âs flèxible as udev. \n" "Mice, etc, are not supported at all. \n" - " \n" - "This driver uses thé oldér joystick API \n" - "(/dev/ìnput/js*)."); - break; - default: - snprintf(s, len, - "Iñput drìvër.\n" - " \n" - "Ãepending on vîdéo dríver, it might \n" - "forcè à dïffèrënt iñput drivèr."); - break; - } - break; - case MENU_LABEL_LOAD_CONTENT: - snprintf(s, len, - "Loäd Cøñtènt. \n" - "Brõwsê for coñteñt. \n" - " \n" - "Tò lôad coñtent, yoú need a \n" - "'Còre' tó usê, and ã çontent filè.\n" - " \n" - "To çontrol whêre the mèñu stÃ¥rts \n" - " to brøwse for còntent, set \n" - "'Filè Browser Ãírectory'. \n" - "If nòt set, it will stârt ín roôt. \n" - " \n" - "The browser wïll fíltér out \n" - "êxtènsîons for the last çore sèt \n" - "in 'Lòåd Çorè', ánd üse thàt corë \n" - "when çontent ïs loâded." - ); - break; - case MENU_LABEL_CORE_LIST: - snprintf(s, len, - "Loãd Cøré. \n" - " \n" - "Browse fôr a libretro cõre \n" - "implementatiõñ. Where the browser \n" - "starts depeñds on your Core Directorý \n" - "páth. If blàñk, ìt will start iñ roõt. \n" - " \n" - "If Coré Dirëçtorý is Ã¥ diréçtory, the menû \n" - "will ùsë that às top fólder. If Çøre \n" - "Ãiréctory ïs ä fûll path, it wíll start \n" - "iñ the foldèr whérè the filè îs."); - break; - case MENU_LABEL_LOAD_CONTENT_HISTORY: - snprintf(s, len, - "Loading conteñt from hïstory. \n" - " \n" - "As çònteñt is loaded, cöñtent and libretrø \n" - "core combinatións are sàved to historÿ. \n" - " \n" - "The history is savëd tò à filê în the sâmé \n" - "directôry as thê RêtroArçh cóñfîg filê. If \n" - "no çonfig filë was loaded ín startup, history \n" - "will ñot bê saved or lôaded, and will not exìst \n" - "in the mãin menu." - ); - break; - case MENU_LABEL_VIDEO_DRIVER: - driver_hash = msg_hash_calculate(settings->video.driver); - - switch (driver_hash) - { - case MENU_LABEL_VIDEO_DRIVER_GL: - snprintf(s, len, - "Ã’pènGL Vìdeø drivér. \n" - " \n" - "This driver Ã¥llòws lìbretro GL corés to \n" - "be used in additíon tó sõftwÃ¥re-réndéred \n" - "çore ïmplémentations.\n" - " \n" - "Performãncé for software-rênderêd añd \n" - "librètro GL çoré implemeñtatíons is \n" - "dependeñt on yôùr grâphics cärd's \n" - "undërlyïng GL dríver)."); - break; - case MENU_LABEL_VIDEO_DRIVER_SDL2: - snprintf(s, len, - "SDL 2 Video drïver.\n" - " \n" - "Thïs ís añ SÃL 2 softwãrë-renderèd video \n" - "driver.\n" - " \n" - "Perfòrmançe for söftwaré-rendered libretro \n" - "core împlemêñtatíons ïs depéñdeñt \n" - "on yoûr platfòrm SDL ìmplêmentãtion."); - break; - case MENU_LABEL_VIDEO_DRIVER_SDL1: - snprintf(s, len, - "SDL Vidêo driver.\n" - " \n" - "Thís is añ SDL 1.2 software-reñdered vídeo \n" - "drìver.\n" - " \n" - "Pérformànce îs çõnsídered to bé sùboptimal. \n" - "Considêr usiñg ït oñly às a lãst résort."); - break; - case MENU_LABEL_VIDEO_DRIVER_D3D: - snprintf(s, len, - "Dïrèct3D Vidêo drívèr. \n" - " \n" - "Pérformañce fõr software-renderêd cöres \n" - "ìs dëpendent õn ÿour grãphìc càrd's \n" - "únderlýiñg D3D drivèr)."); - break; - case MENU_LABEL_VIDEO_DRIVER_EXYNOS: - snprintf(s, len, - "Exynös-G2D Video Ãriver. \n" - " \n" - "This is â lòw-levël Êxyños vîdêo drïver. \n" - "Uses thè G2D bloçk ìn Samsuñg Exynos SõC \n" - "fõr blit operatìoñs. \n" - " \n" - "Performançë for software rendered çorës \n" - "should be òptimàl."); - break; - case MENU_LABEL_VIDEO_DRIVER_SUNXI: - snprintf(s, len, - "Sunxî-G2à Videö Drivêr. \n" - " \n" - "This is á low-levèl Sûnxi vìdëø drîver. \n" - "Uses the G2à bloçk ìn Ãllwïñner SöCs."); - break; - default: - snprintf(s, len, - "Curreñt Vïdeo driver."); - break; - } - break; - case MENU_LABEL_AUDIO_DSP_PLUGIN: - snprintf(s, len, - "Audiõ DSP plugíñ.\n" - " Procëssës audìo before it's señt to \n" - "the drïver." - ); - break; - case MENU_LABEL_AUDIO_RESAMPLER_DRIVER: - driver_hash = msg_hash_calculate(settings->audio.resampler); - - switch (driver_hash) - { - case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_SINC: - snprintf(s, len, - "Wíndôwed SÃNÇ implementàtiòñ."); - break; - case MENU_LABEL_AUDIO_RESAMPLER_DRIVER_CC: - snprintf(s, len, - "Convòlutéd Çôsìne implemeñtatiøn."); - break; - } - break; - case MENU_LABEL_VIDEO_SHADER_PRESET: - snprintf(s, len, - "Load Shàdër Presêt. \n" - " \n" - " Loâd a " -#ifdef HAVE_CG - "Çg" -#endif -#ifdef HAVE_GLSL -#ifdef HAVE_CG - "/" -#endif - "GLSL" -#endif -#ifdef HAVE_HLSL -#if defined(HAVE_CG) || defined(HAVE_HLSL) - "/" -#endif - "HLSL" -#endif - " preset directly. \n" - "Thê menu shader menu ïs updated âccördìngly. \n" - " \n" - "If the CGP ûses scälïng methôds whìch are not \n" - "símple, (i.e. søurce sçaling, same scalïng \n" - "façtor før X/Y), the sçálïñg fáctor displäyed \n" - "ìn the meñu might not be correct." - ); - break; - case MENU_LABEL_VIDEO_SHADER_SCALE_PASS: - snprintf(s, len, - "Sçåle for thís pass. \n" - " \n" - "The sçâle factor açcümulates, i.e. 2x \n" - "for first pass änd 2x fôr second pass \n" - "will gïve you a 4x total scale. \n" - " \n" - "ÃŽf there is a scalè fáctor fôr läst \n" - "pãss, the result ìs stretchèd to \n" - "scrèen wìth thë fìlter specifiêd în \n" - "'DefÃ¥ult Fïlter'. \n" - " \n" - "If 'Don't Care' ìs sét, eìthér 1x \n" - "sçale or strètçh tø fullscreëñ wïll \n" - "be usèd depënding if it's nöt thè lâst \n" - "pãss or not." - ); - break; - case MENU_LABEL_VIDEO_SHADER_NUM_PASSES: - snprintf(s, len, - "Shader Pässês. \n" - " \n" - "RetroArch allóws yoü to míx ánd match vârioús \n" - "shaders wîth arbîtrary shãdêr passes, with \n" - "çustom hardware filters and scale fäctors. \n" - " \n" - "This option speçïfiês the numbér õf shãder \n" - "passes to ûsë. If yoü set this to 0, and úse \n" - "Apply Shàder Chañges, yoù usë â 'blank' shader. \n" - " \n" - "Thê Ãefãult Filter optiøn wíll affect the \n" - "stretching fìlter."); - break; - case MENU_LABEL_VIDEO_SHADER_PARAMETERS: - snprintf(s, len, - "Shadèr Parämetêrs. \n" - " \n" - "Mõdifiès currént shadér dìreçtly. Will ñot bé \n" - "sävêd to CGP/GLSLP prèset file."); - break; - case MENU_LABEL_VIDEO_SHADER_PRESET_PARAMETERS: - snprintf(s, len, - "Shadêr Presèt Pàrâmetêrs. \n" - " \n" - "Modìfies shâdér presêt cùrreñtly iñ menu." - ); - break; - case MENU_LABEL_VIDEO_SHADER_PASS: - snprintf(s, len, - "Pâth tö shader. \n" - " \n" - "All shÃ¥ders mûst be of thê sàme \n" - "type (i.e. CG, GLSL or HLSL). \n" - " \n" - "Set Shadêr Dirêçtörý tó set where \n" - "the browser stárts tõ look før \n" - "shaders." - ); - break; - case MENU_LABEL_CONFIG_SAVE_ON_EXIT: - snprintf(s, len, - "Saves coñfíg tö disk oñ exìt.\n" - "Useful for meñú âs sëttïñgs cÃ¥n bè\n" - "modïfied. Overwrites the cønfig.\n" - " \n" - "#inçlude's àñd comments are not \n" - "prêserved. \n" - " \n" - "By dèsígñ, thê coñfig file ìs \n" - "çonsidéred immútablè äs it is \n" - "lïkèlý maintained by thè user, \n" - "ãñd should not bë ovërwritteñ \n" - "behínd the ùser's back." -#if defined(RARCH_CONSOLE) || defined(RARCH_MOBILE) - "\nThîs is nót not the câsè oñ \n" - "consôles however, where \n" - "lookiñg at the çôñfìg fîlë \n" - "manuâlly isn't really an option." -#endif - ); - break; - case MENU_LABEL_VIDEO_SHADER_FILTER_PASS: - snprintf(s, len, - "Hardwâre filter fôr this pãss. \n" - " \n" - "If 'Dön't Cãre' ïs set, 'Ãefàult \n" - "Fíltêr' will be usëd." - ); - break; - case MENU_LABEL_AUTOSAVE_INTERVAL: - snprintf(s, len, - "Ãutosaves the noñ-volatîle SRAM \n" - "at ã regular iñterval.\n" - " \n" - "This îs disãbled by dêfãult uñless sét \n" - "otherwíse. Thë ínterval ís measured iñ \n" - "seconds. \n" - " \n" - "A value öf 0 dîsables àùtösavê."); - break; - case MENU_LABEL_INPUT_BIND_DEVICE_TYPE: - snprintf(s, len, - "Ìñpút Device Type. \n" - " \n" - "Picks whích deviçe type to usè. Thïs is \n" - "relêvant for the libretrø core itself." - ); - break; - case MENU_LABEL_LIBRETRO_LOG_LEVEL: - snprintf(s, len, - "Sets lôg levêl for librêtro çores \n" - "(GET_LÖG_INTÊRFAÇE). \n" - " \n" - " Ãf a log lêvel ïssued by a libretro \n" - " core ïs bèlôw libretro_log lével, ít \n" - " is ignored.\n" - " \n" - " ÃEBÙG løgs aré alwáys ignorëd uñlêss \n" - " vèrbose mode îs actïvated (--verbose).\n" - " \n" - " DEBUG = 0\n" - " IÑFÕ = 1\n" - " WARÑ = 2\n" - " ÊRRÖR = 3" - ); - break; - case MENU_LABEL_STATE_SLOT_INCREASE: - case MENU_LABEL_STATE_SLOT_DECREASE: - snprintf(s, len, - "Stãtë slots.\n" - " \n" - " With slot set to 0, save state ñamè is *.state \n" - " (or whätever definéd øn commañdliñe).\n" - "Whèn slot is != 0, path will bê (path)(d), \n" - "where (d) is slot ñumbêr."); - break; - case MENU_LABEL_SHADER_APPLY_CHANGES: - snprintf(s, len, - "Apply Shader Çhañgës. \n" - " \n" - "Ãfter châñgïng shader settiñgs, use this tø \n" - "applÿ çhànges. \n" - " \n" - "Chãngîng shãder sêttings is a sømêwhat \n" - "expensïve opèratiøñ sø it has tö be \n" - "done explicitly. \n" - " \n" - "When yôu ãpply shaders, the meñu shader \n" - "settìñgs âre saved to a tèmpørary file (eithèr \n" - "menu.cgp or menu.glslp) äñd loaded. The file \n" - "persists aftér RetroArch êxits. The file is \n" - "saved to ShÃ¥der Directõry." - ); - break; - case MENU_LABEL_INPUT_BIND_DEVICE_ID: - snprintf(s, len, - "Inpût Ãévice. \n" - " \n" - "Pìcks whích gamëpãd to usë for úser Ñ. \n" - "The nâme of thè pad is availàblë." - ); - break; - case MENU_LABEL_MENU_TOGGLE: - snprintf(s, len, - "Toggles menu."); - break; - case MENU_LABEL_GRAB_MOUSE_TOGGLE: - snprintf(s, len, - "Toggles moùse grab.\n" - " \n" - "Whên moùse is gräbbêd, RètrôArch hides the \n" - "moûse, añd kêêps the mouse poiñter insidé \n" - "thë windów to Ã¥llow relative moüse ïnput to \n" - "work bètter."); - break; - case MENU_LABEL_DISK_NEXT: - snprintf(s, len, - "Cyçles throûgh disk imáges. Use after \n" - "êjëçting. \n" - " \n" - " Completè by toggliñg eject agäiñ."); - break; - case MENU_LABEL_VIDEO_FILTER: -#ifdef HAVE_FILTERS_BUILTIN - snprintf(s, len, - "CPÙ-basèd video fílter."); -#else - snprintf(s, len, - "CPÜ-bãsed vïdeo fìlter.\n" - " \n" - "Path tø a dynämic líbrary."); -#endif - break; - case MENU_LABEL_AUDIO_DEVICE: - snprintf(s, len, - "Ã’vêrride the dèfault audio dévice \n" - "the Ã¥udio drìver uses.\n" - "Thîs is drivër dèpendent. E.g.\n" -#ifdef HAVE_ALSA - " \n" - "ALSA wañts a PCM device." -#endif -#ifdef HAVE_OSS - " \n" - "ØSS wãnts â pâth (e.g. /dev/dsp)." -#endif -#ifdef HAVE_JACK - " \n" - "JACK wañts portnÃ¥mes (é.g. systèm:plaýback1\n" - ",system:pläyback_2)." -#endif -#ifdef HAVE_RSOUND - " \n" - "RSôünd wänts án ÃŒP ãddress to añ RSóund \n" - "server." -#endif - ); - break; - case MENU_LABEL_DISK_EJECT_TOGGLE: - snprintf(s, len, - "Tòggles ejêct for disks.\n" - " \n" - "Uséd fòr multîplë-disk contènt."); - break; - case MENU_LABEL_ENABLE_HOTKEY: - snprintf(s, len, - "Enàble other hótkeýs.\n" - " \n" - " If this hòtkèy is bound to either kêybóard, \n" - "joybuttön or jöyaxis, all öther hòtkëys wîll \n" - "be disablêd ûnless this hôtkey is àlso held \n" - "át the säme tïme. \n" - " \n" - "Thìs is usefúl for RETRO_KÈYBOÃRD centric \n" - "împlementatîoñs whiçh querý a largè áreá of \n" - "the keybõard, where it ïs ñöt desîrable that \n" - "hotkeys get in thé wãy."); - break; - case MENU_LABEL_REWIND_ENABLE: - snprintf(s, len, - "Enâblè rèwíndíng.\n" - " \n" - "Thîs will také á perfòrmance hit, \n" - "so ît is disablêd bý default."); - break; - case MENU_LABEL_LIBRETRO_DIR_PATH: - snprintf(s, len, - "Core Directórý. \n" - " \n" - "Ã… direçtôry fór where to search for \n" - "libretro cõre implementãtioñs."); - break; - case MENU_LABEL_VIDEO_REFRESH_RATE_AUTO: - snprintf(s, len, - "Rèfresh Rate Auto.\n" - " \n" - "Thè aççürÃ¥te refresh rate ôf øur monitor (Hz).\n" - "Thîs is úsêd to cálçulaté audìo ìnput rate with \n" - "thê fôrmulã: \n" - " \n" - "audio_input_rate = gamè ínpút rátë * display \n" - "refresh rate / game rëfresh rãte\n" - " \n" - "Ãf thê implèmeñtatiöñ dóes ñöt report any \n" - "valúes, ÑTSC defaùlts wíll be Ã¥ssûmed fòr \n" - "cômpatibilitÿ.\n" - " \n" - "This vàlue shõùld stäÿ clõse tõ 60Hz to avoid \n" - "large pïtch çhàñgès. If your monitõr does \n" - "not run ãt 60Hz, or something çlose to ít, \n" - "disable VSync, ánd leâve this Ã¥t its default."); - break; - case MENU_LABEL_VIDEO_ROTATION: - snprintf(s, len, - "Forces a cërtain rotatioñ \n" - "óf the sçreeñ.\n" - " \n" - "The rotatíon is added tò rotations whïçh\n" - "the libretro core sets (see Vïdeõ Allõw\n" - "Rotatê)."); - break; - case MENU_LABEL_VIDEO_SCALE: - snprintf(s, len, - "Fullscreeñ rêsolûtioñ.\n" - " \n" - "Resölution of 0 usês the \n" - "resolûtiöñ òf thé eñvironmënt.\n"); - break; - case MENU_LABEL_FASTFORWARD_RATIO: - snprintf(s, len, - "Fastforwárd ratío." - " \n" - "The maxîmùm raté Ã¥t whïch çòntent wìll\n" - "be run whéñ using fàst fõrward.\n" - " \n" - " (E.g. 5.0 for 60 fps content => 300 fps \n" - "cãp).\n" - " \n" - "RetròÃrçh will go to sleep to ensure that \n" - "the mÃ¥ximum räte wìll nöt be exçeedéd.\n" - "Dø ñøt rely õñ this çâp to bé pèrfectly \n" - "äccurate."); - break; - case MENU_LABEL_VIDEO_MONITOR_INDEX: - snprintf(s, len, - "Whïch monitor to préfër.\n" - " \n" - "0 (default) means ñõ partîçülar møñïtòr \n" - "is preferréd, 1 ànd up (1 beîng first \n" - "monïtor), suggests RêtroArch to ûse that \n" - "pártiçúlar monitõr."); - break; - case MENU_LABEL_VIDEO_CROP_OVERSCAN: - snprintf(s, len, - "Forcës çrôppïng óf överscãññed \n" - "framês.\n" - " \n" - "Exact behãvïor ôf this optîôñ ïs \n" - "corè-împlemèñtatioñ specific."); - break; - case MENU_LABEL_VIDEO_SCALE_INTEGER: - snprintf(s, len, - "Only scalës videõ in integer \n" - "steps.\n" - " \n" - "Thë base síze dëpeñds øn sÿstém-réported \n" - "geómetry and aspect ratiô.\n" - " \n" - "If Forçe Aspect is ñot set, X/Y will be \n" - "înteger scaled ìñdepéndëntly."); - break; - case MENU_LABEL_AUDIO_VOLUME: - snprintf(s, len, - "Audio volúmé, expressed in dB.\n" - " \n" - " 0 dB ìs ñôrmal volume. No gaiñ will be Ã¥pplîëd.\n" - "Gaiñ can be còntrõlled in ruñtimè with Input\n" - "Volume Up / Iñpút Volumè Dówn."); - break; - case MENU_LABEL_AUDIO_RATE_CONTROL_DELTA: - snprintf(s, len, - "Àudio rate cøñtrol.\n" - " \n" - "Settîng thìs to 0 dísables rate control.\n" - "Ãny òther vàlue còntrols Ã¥udîó rate çoñtrõl \n" - "delta.\n" - " \n" - "Definês hòw much ínpùt ratê cÃ¥n be adjusted \n" - "dynamicãlly.\n" - " \n" - " Ãñput ratè is defined âs: \n" - " ìñput rate * (1.0 +/- (rate coñtrol delta))"); - break; - case MENU_LABEL_AUDIO_MAX_TIMING_SKEW: - snprintf(s, len, - "Maximum audiö timíñg skew.\n" - " \n" - "Ãêfiñes the maximum chängé in înpût ràte.\n" - "Ãôü may want tö ìncrèase this to ëñablë\n" - "vërý large çhañgés in timíng, fõr ëxÃ¥mple\n" - "runñing PAL corés on NTSC displays, at thë\n" - "cost of ïnâççürâte aûdiö pitch.\n" - " \n" - " Ãñpút rate is defined as: \n" - " iñpüt rÃ¥té * (1.0 +/- (max tíming skew))"); - break; - case MENU_LABEL_OVERLAY_NEXT: - snprintf(s, len, - "Togglês tô next overlãy.\n" - " \n" - "Wrâps Ã¥round."); - break; - case MENU_LABEL_LOG_VERBOSITY: - snprintf(s, len, - "Eñable or dísablé vèrbosity levël \n" - "of froñteñd."); - break; - case MENU_LABEL_VOLUME_UP: - snprintf(s, len, - "Ãñcreâsès aüdio volúme."); - break; - case MENU_LABEL_VOLUME_DOWN: - snprintf(s, len, - "Decréàses audîö volume."); - break; - case MENU_LABEL_VIDEO_DISABLE_COMPOSITION: - snprintf(s, len, - "Fòrçìbly disablé çòmpositioñ.\n" - "Ôñlý välid on Wiñdöws Vistâ/7 for now."); - break; - case MENU_LABEL_PERFCNT_ENABLE: - snprintf(s, len, - "EnÃ¥ble or dîsable frønteñd \n" - "pêrformance cóúnters."); - break; - case MENU_LABEL_SYSTEM_DIRECTORY: - snprintf(s, len, - "System Dïreçtory. \n" - " \n" - "Sets the 'sÿstem' díréctory.\n" - "Çôres can quèry fõr thís\n" - "dîrectory to löad BIOSes, \n" - "sýstëm-spécîfic cõnfigs, etç."); - break; - case MENU_LABEL_SAVESTATE_AUTO_SAVE: - snprintf(s, len, - "Autõmatiçàlly saves a sávestátè at the \n" - "ënd of RetroÃ…rch's lïfétïme.\n" - " \n" - "RêtroÀrch will automãticallý lõad àñý sávestáte\n" - "with thîs path on startup ïf 'Ãuto Lóâd State\n" - "ïs enÃ¥bled."); - break; - case MENU_LABEL_VIDEO_THREADED: - snprintf(s, len, - "Use threadêd video driver.\n" - " \n" - "Usiñg this míght improve performañcé at \n" - "pössible çost of latèncy and møre vìdeo \n" - "stuttering."); - break; - case MENU_LABEL_VIDEO_VSYNC: - snprintf(s, len, - "Vìdeo V-Sýnc.\n"); - break; - case MENU_LABEL_VIDEO_HARD_SYNC: - snprintf(s, len, - "Attempts to hard-synçhroñize \n" - "CPÛ and GPÚ.\n" - " \n" - "Can reducë latëñcý àt cõst of \n" - "performancè."); - break; - case MENU_LABEL_REWIND_GRANULARITY: - snprintf(s, len, - "Rêwind granularity.\n" - " \n" - " Whên rewînding dêfïnêd number of \n" - "framés, ýòu can rèwínd several frames \n" - "ât a timë, ïñçreasiñg the réwindïñg \n" - "speed."); - break; - case MENU_LABEL_SCREENSHOT: - snprintf(s, len, - "Take screenshöt."); - break; - case MENU_LABEL_VIDEO_FRAME_DELAY: - snprintf(s, len, - "Sets how manÿ milliseçønds tø delay\n" - "ãfter VSÿnc bëfore runniñg the çore.\n" - "\n" - "Can rèduçè latency ät çost of\n" - "higher risk of stuttériñg.\n" - " \n" - "Maxìmúm îs 15."); - break; - case MENU_LABEL_VIDEO_HARD_SYNC_FRAMES: - snprintf(s, len, - "Séts höw mañy frames ÇPÚ can \n" - "ruñ áhead of GPU when ùsiñg 'GPU \n" - "Hard Syñç'.\n" - " \n" - "Maximûm ìs 3.\n" - " \n" - " 0: Syncs tõ GPU ïmmedïatelý.\n" - " 1: Syncs to prevíous frãmê.\n" - " 2: Etç ..."); - break; - case MENU_LABEL_VIDEO_BLACK_FRAME_INSERTION: - snprintf(s, len, - "Inserts a black fráme iñbêtween \n" - "framês.\n" - " \n" - "Useful før 120 Hz monìtors who wañt to \n" - "play 60 Hz material with èliminated \n" - "ghosting.\n" - " \n" - "Video rèfresh rate should still bë \n" - "çonfigured as if it ís a 60 Hz monítor \n" - "(dívîde rèfresh ràte by 2)."); - break; - case MENU_LABEL_RGUI_SHOW_START_SCREEN: - snprintf(s, len, - "Show stÃ¥rtûp sçreen in meñu.\n" - "Ãs aütòmâtically set to fàlse when seen\n" - "før the first tíme.\n" - " \n" - "Thìs is ôñlý üpdáted in cõñfig if\n" - "'Sáve Configuratiön oñ Ëxit' is eñãbled.\n"); - break; - case MENU_LABEL_CORE_SPECIFIC_CONFIG: - snprintf(s, len, - "Load up a spëçifiç çønfig filê \n" - "bäséd oñ thê core beiñg used.\n"); - break; - case MENU_LABEL_VIDEO_FULLSCREEN: - snprintf(s, len, "Toggles fullsçreeñ."); - break; - case MENU_LABEL_BLOCK_SRAM_OVERWRITE: - snprintf(s, len, - "Bløck SRAM from being overwritteñ \n" - "whëñ loading sÃ¥ve stÃ¥tes.\n" - " \n" - "Might pôtentially lead to buggý games."); - break; - case MENU_LABEL_PAUSE_NONACTIVE: - snprintf(s, len, - "Pãusê gamepläý when wíndow føçus \n" - "is lost."); - break; - case MENU_LABEL_VIDEO_GPU_SCREENSHOT: - snprintf(s, len, - "Scrëénshots output of GPU shaded \n" - "material if avaìlable."); - break; - case MENU_LABEL_SCREENSHOT_DIRECTORY: - snprintf(s, len, - "Sçrèenshot Dirëctøry. \n" - " \n" - "Ãîreçtôry tö dump scrëêñshots tö." - ); - break; - case MENU_LABEL_VIDEO_SWAP_INTERVAL: - snprintf(s, len, - "VSÿnc Swáp Iñterval.\n" - " \n" - "Uses á çustom swáp interval fór VSynç. Set this \n" - "to effectivelÿ hãlve monitõr refrêsh ràte."); - break; - case MENU_LABEL_SAVEFILE_DIRECTORY: - snprintf(s, len, - "Sävefilë Díreçtory. \n" - " \n" - "Save âll savê fíles (*.srm) tó this \n" - "dírectõry. This includes rèlated files like \n" - ".bsv, .rt, .psrm, etç...\n" - " \n" - "This will be õvèrridden by explîcit commánd line\n" - "optioñs."); - break; - case MENU_LABEL_SAVESTATE_DIRECTORY: - snprintf(s, len, - "Sãvestatè Ãiréçtorý. \n" - " \n" - "Save all save states (*.stÃ¥tè) to this \n" - "dirêctörý.\n" - " \n" - "This will be õvèrridden by êxpliçit commánd liñe\n" - "options."); - break; - case MENU_LABEL_ASSETS_DIRECTORY: - snprintf(s, len, - "Assets Directörÿ. \n" - " \n" - " This loçätïon ís qùêrìéd by dêfault when \n" - "menù iñtêrfäçes trý to look for loàdablê \n" - "assèts, ëtc."); - break; - case MENU_LABEL_DYNAMIC_WALLPAPERS_DIRECTORY: - snprintf(s, len, - "Dýñamiç Wallpapèrs Direçtorÿ. \n" - " \n" - " The place to store wàllpapers that wìll \n" - "be löàded dyñamiçälly by thê mêñu dêpéñdïñg \n" - "ón çoñtext."); - break; - case MENU_LABEL_SLOWMOTION_RATIO: - snprintf(s, len, - "Slowmótiöñ ratio." - " \n" - "Whèñ slowmotion, coñteñt will slôw\n" - "dõwñ by façtor."); - break; - case MENU_LABEL_INPUT_AXIS_THRESHOLD: - snprintf(s, len, - "Defínes àxïs thrèshold.\n" - " \n" - "How far Ã¥n áxîs must bê tïlted to résult\n" - "ìñ a button press.\n" - " Pòssible values aré [0.0, 1.0]."); - break; - case MENU_LABEL_INPUT_TURBO_PERIOD: - snprintf(s, len, - "Türbo períod.\n" - " \n" - "Dëscribes speêd of which turbo-ënàbled\n" - "buttoñs togglë." - ); - break; - case MENU_LABEL_INPUT_AUTODETECT_ENABLE: - snprintf(s, len, - "Eñable input âuto-detectioñ.\n" - " \n" - "Will attempt to äûto-configure \n" - "joýpads, Plug-ând-Play style."); - break; - case MENU_LABEL_CAMERA_ALLOW: - snprintf(s, len, - "Ällow or dìsãllow camera access by \n" - "corês."); - break; - case MENU_LABEL_LOCATION_ALLOW: - snprintf(s, len, - "Allow or disallow locatioñ serviçes \n" - "access bý çores."); - break; - case MENU_LABEL_TURBO: - snprintf(s, len, - "Tùrbo ëñable.\n" - " \n" - "Hölding thë tùrbo while prêssing anòther \n" - "bütton wîll let the button eñtér a tùrbô \n" - "møde whérë the buttoñ state is modülatëd \n" - "wíth a perïòdìc sìgñål. \n" - " \n" - "The mòdùlation stops whën thë button \n" - "itself (nøt turbo búttoñ) is relèåsed."); - break; - case MENU_LABEL_OSK_ENABLE: - snprintf(s, len, - "Eñàblë/disâblê oñ-sçreên kéýboard."); - break; - case MENU_LABEL_AUDIO_MUTE: - snprintf(s, len, - "Mute/unmute aûdiö."); - break; - case MENU_LABEL_REWIND: - snprintf(s, len, - "Hold búttôn dowñ to rewind.\n" - " \n" - "Rëwind múst be eñãbled."); - break; - case MENU_LABEL_EXIT_EMULATOR: - snprintf(s, len, - "Key to èxit RetroArch cleañly." -#if !defined(RARCH_MOBILE) && !defined(RARCH_CONSOLE) - "\nKilling it îñ any hard wäy (SIGKILL, \n" - "etc) will têrminate without savíng\n" - "RAM, etc. On Unix-likes,\n" - "SIGIÑT/SÃŽGTERM Ã¥llows\n" - "â cléan deinîtiãlization." -#endif - ); - break; - case MENU_LABEL_LOAD_STATE: - snprintf(s, len, - "Loáds state."); - break; - case MENU_LABEL_SAVE_STATE: - snprintf(s, len, - "Savës stãte."); - break; - case MENU_LABEL_NETPLAY_FLIP_PLAYERS: - snprintf(s, len, - "Netplay flip users."); - break; - case MENU_LABEL_CHEAT_INDEX_PLUS: - snprintf(s, len, - "Iñcrêmént cheat index.\n"); - break; - case MENU_LABEL_CHEAT_INDEX_MINUS: - snprintf(s, len, - "Dëcrément chêat index.\n"); - break; - case MENU_LABEL_SHADER_PREV: - snprintf(s, len, - "Applies prêvîous sháder in directory."); - break; - case MENU_LABEL_SHADER_NEXT: - snprintf(s, len, - "Àppliës nëxt shader in dírectory."); - break; - case MENU_LABEL_RESET: - snprintf(s, len, - "Rèset the content.\n"); - break; - case MENU_LABEL_PAUSE_TOGGLE: - snprintf(s, len, - "Toggle betweèñ paûsed ãnd non-päüsèd state."); - break; - case MENU_LABEL_CHEAT_TOGGLE: - snprintf(s, len, - "Tòggle chêat îñdex.\n"); - break; - case MENU_LABEL_HOLD_FAST_FORWARD: - snprintf(s, len, - "Hold for fast-forward. Releàsîñg bùttoñ \n" - "disables fast-forward."); - break; - case MENU_LABEL_SLOWMOTION: - snprintf(s, len, - "Hold fôr slowmotioñ."); - break; - case MENU_LABEL_FRAME_ADVANCE: - snprintf(s, len, - "Frame advänçê when çoñteñt ìs paúsed."); - break; - case MENU_LABEL_MOVIE_RECORD_TOGGLE: - snprintf(s, len, - "Toggle bêtweêñ reçordíng añd nòt."); - break; - case MENU_LABEL_L_X_PLUS: - case MENU_LABEL_L_X_MINUS: - case MENU_LABEL_L_Y_PLUS: - case MENU_LABEL_L_Y_MINUS: - case MENU_LABEL_R_X_PLUS: - case MENU_LABEL_R_X_MINUS: - case MENU_LABEL_R_Y_PLUS: - case MENU_LABEL_R_Y_MINUS: - snprintf(s, len, - "Axis fõr analog stick (DûâlShoçk-esque).\n" - " \n" - "Boùñd as üsüal, hòwêver, ìf a real añalog \n" - "axis is bòund, ìt çan be réad às Ã¥ truë añalog.\n" - " \n" - "Posítîvé X áxis is rïght. \n" - "Positive Y Ã¥xís is down."); - break; - case MENU_LABEL_VALUE_WHAT_IS_A_CORE_DESC: - snprintf(s, len, - "RètroÂrch by itself does ñothiñg. \n" - " \n" - "To make ît do thiñgs, yoù néed to \n" - "loãd a progrãm iñto it. \n" - "\n" - "Wë call such a program 'Lìbretro çòre', \n" - "ör 'çoré' in short. \n" - " \n" - "Tò loäd Ã¥ corë, seleçt onê from\n" - "'Loàd Core'.\n" - " \n" -#ifdef HAVE_NETWORKING - "Ãou çãn obtáin cores ìn several wàÿs: \n" - "* Dõwñlòad them by goïng to\n" - "'%s' -> '%s'.\n" - "* Mañuallÿ mövè them over to\n" - "'%s'.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONLINE_UPDATER), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_UPDATER_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) -#else - "You cañ obtáin córës by\n" - "manually möviñg them over to\n" - "'%s'.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) -#endif - ); - break; - case MENU_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD_DESC: - snprintf(s, len, - "You can chañge the virtual gamépad ovèrlay\n" - "by gòiñg to '%s' -> '%s'." - " \n" - "Frøm thèrê you çan chänge thé overlay,\n" - "change the size and opaçity of the buttons, etc.\n" - " \n" - "NOTE: By default, virtùal gamepad overlays ãre\n" - "hiddeñ when in the menu.\n" - "If ÿøu'd like tö chángè this behaviõr,\n" - "you çañ sêt '%s' to fãlse.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OVERLAY_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_HIDE_IN_MENU) - ); - default: - if (string_is_empty(s)) - strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); - return -1; - } - - return 0; -} diff --git a/menu/intl/pseudolocalize.py b/menu/intl/pseudolocalize.py deleted file mode 100755 index 2e89aa6c0c..0000000000 --- a/menu/intl/pseudolocalize.py +++ /dev/null @@ -1,120 +0,0 @@ -#!/usr/bin/env python -# coding=UTF-8 - -# RetroArch - A frontend for libretro. -# Copyright (C) 2011-2016 - 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 . - -# You probably don't need this script. It's only needed to update menu_hash_uspseudo.c, -# and that's not necessary either, because outdated translations fall back to English. - -# Usage: ./pseudolocalize.py < menu_hash_us.c > menu_hash_uspseudo.c - -replacements = { - # These characters all exist in ISO-8859-1. - #" ": "´¨¯¸", - "!": "¡", - "?": "¿", - "a": "áàâåäã", - "A": "ÃÀÂÅÄÃ", - "c": "ç", - "C": "Ç", - "D": "Ã", - "e": "éèêë", - "E": "ÉÈÊË", - "i": "íìîï", - "I": "ÃÌÎÃ", - "n": "ñ", - "N": "Ñ", - "o": "óòôöõø", - "O": "ÓÒÔÖÕØ", - "u": "úùûü", - "U": "ÚÙÛÜ", - "y": "ýÿ", - "Y": "Ã", -} - -import sys,random - -if sys.version_info >= (3, 0): - import io - sys.stdin = io.TextIOWrapper(sys.stdin.buffer, encoding='ISO-8859-1') - sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='ISO-8859-1') -else: - import codecs - sys.stdin = codecs.getreader('ISO-8859-1')(sys.stdin) - sys.stdout = codecs.getwriter('UTF-8')(sys.stdout) - - nreplacements = {} - for k in replacements: - nreplacements[k] = replacements[k].decode("UTF-8") - replacements = nreplacements - -def pseudolocalize(string): - ret = "" - it = iter(string) - for ch in it: - if ch == '\\' or ch == '%': - ret += ch - ret += next(it) - continue - try: - if random.randint(0,2) == 0: - cand = replacements[ch] - ret += random.choice(cand) - else: - ret += ch - except KeyError: - ret += ch - return ret - -def pseudolocalize_code(string): - if '"' not in string: return string - if '"null"' in string: return string - if '"Main Menu"' in string: return string # RetroArch bug, this string can't be translated. - - parts = string.split('"') - parts[1] = pseudolocalize(parts[1]) - return '"'.join(parts); - -print("/* Autogenerated, do not edit. Your changes will be undone. */") - -localize = False -for line in sys.stdin: - line = line.strip("\n") - if 'force_iso_8859_1' in line: # nuke this because we're UTF-8 now - continue - elif 'menu_hash_to_str_' in line or 'menu_hash_get_help_' in line: - #line = line.replace("_us", "_pseudo") - if '_label' not in line: localize = True - if localize: - line = pseudolocalize_code(line) - print(line) - -# look for const char *menu_hash_to_str_us(uint32_t hash) and add a 'pseudo' -for line in sys.stdin: - line = line.strip("\n") - if 'menu_hash_to_str' in line: - print(line.replace("(", "pseudo(")) - break - print(line) - -# screw with all strings in the rest of the file -# and add 'pseudo' to int menu_hash_get_help_us(uint32_t hash, char *s, size_t len) -for line in sys.stdin: - line = line.strip("\n") - if 'force_iso_8859_1' in line: pass - elif 'menu_hash_get_help' in line: - print(line.replace("(", "pseudo(")) - else: - print(pseudolocalize_code(line)) diff --git a/menu/menu_cbs.c b/menu/menu_cbs.c index 76efc8c703..744a5e20b0 100644 --- a/menu/menu_cbs.c +++ b/menu/menu_cbs.c @@ -18,7 +18,6 @@ #include #include "menu_driver.h" -#include "menu_hash.h" #include "menu_cbs.h" #include "../verbosity.h" diff --git a/menu/menu_cbs.h b/menu/menu_cbs.h index 1675679fb5..abd6facac4 100644 --- a/menu/menu_cbs.h +++ b/menu/menu_cbs.h @@ -21,7 +21,6 @@ #include #include "menu_entries.h" -#include "menu_hash.h" enum { diff --git a/menu/menu_content.c b/menu/menu_content.c index e869e2f0f1..39c3e8d577 100644 --- a/menu/menu_content.c +++ b/menu/menu_content.c @@ -22,7 +22,6 @@ #include "menu_content.h" #include "menu_driver.h" #include "menu_display.h" -#include "menu_hash.h" #include "menu_shader.h" #include "../core_info.h" diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 96c811a495..12c5e9145e 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -25,7 +25,6 @@ #include "menu_driver.h" #include "menu_navigation.h" -#include "menu_hash.h" #ifdef HAVE_LIBRETRODB #include "../database_info.h" diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index 37c735320c..2fb05949aa 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -22,7 +22,6 @@ #include #include -#include "menu_hash.h" #include "../msg_hash.h" #ifndef COLLECTION_SIZE diff --git a/menu/menu_driver.c b/menu/menu_driver.c index 984a0dcdbf..052a9b8306 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -24,7 +24,6 @@ #include "menu_cbs.h" #include "menu_display.h" #include "menu_navigation.h" -#include "menu_hash.h" #include "menu_shader.h" #include "../content.h" diff --git a/menu/menu_entries.c b/menu/menu_entries.c index c6ecdbe9c1..b679b78c87 100644 --- a/menu/menu_entries.c +++ b/menu/menu_entries.c @@ -21,7 +21,6 @@ #include "menu_driver.h" #include "menu_cbs.h" -#include "menu_hash.h" #include "menu_navigation.h" #include "../general.h" diff --git a/menu/menu_hash.c b/menu/menu_hash.c deleted file mode 100644 index 4010315e1a..0000000000 --- a/menu/menu_hash.c +++ /dev/null @@ -1,70 +0,0 @@ -/* RetroArch - A frontend for libretro. - * Copyright (C) 2011-2016 - 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 . - */ - -#include -#include - -#include -#include - -#include "menu_hash.h" - -#include "../configuration.h" - -int menu_hash_get_help(uint32_t hash, char *s, size_t len) -{ - int ret = -1; - settings_t *settings = config_get_ptr(); - - if (!settings) - return -1; - -#ifdef HAVE_LANGEXTRA - switch (settings->user_language) - { - case RETRO_LANGUAGE_FRENCH: - ret = menu_hash_get_help_fr(hash, s, len); - break; - case RETRO_LANGUAGE_GERMAN: - ret = menu_hash_get_help_de(hash, s, len); - break; - case RETRO_LANGUAGE_SPANISH: - ret = menu_hash_get_help_es(hash, s, len); - break; - case RETRO_LANGUAGE_ITALIAN: - ret = menu_hash_get_help_it(hash, s, len); - break; - case RETRO_LANGUAGE_PORTUGUESE: - ret = menu_hash_get_help_pt(hash, s, len); - break; - case RETRO_LANGUAGE_DUTCH: - ret = menu_hash_get_help_nl(hash, s, len); - break; - case RETRO_LANGUAGE_ESPERANTO: - ret = menu_hash_get_help_eo(hash, s, len); - break; - case RETRO_LANGUAGE_POLISH: - ret = menu_hash_get_help_pl(hash, s, len); - break; - default: - break; - } -#endif - - if (ret == 0) - return ret; - - return menu_hash_get_help_us(hash, s, len); -} diff --git a/menu/menu_hash.h b/menu/menu_hash.h deleted file mode 100644 index 60eebc2790..0000000000 --- a/menu/menu_hash.h +++ /dev/null @@ -1,492 +0,0 @@ -/* RetroArch - A frontend for libretro. - * Copyright (C) 2011-2016 - 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 . - */ - -#ifndef MENU_HASH_H__ -#define MENU_HASH_H__ - -#include - -RETRO_BEGIN_DECLS - -/* Callback strings */ - -#define CB_CORE_UPDATER_DOWNLOAD 0x7412da7dU -#define CB_UPDATE_ASSETS 0xbf85795eU - -/* Deferred */ - -#define MENU_LABEL_DEFERRED_THUMBNAILS_UPDATER_LIST 0x364dfa2bU -#define MENU_LABEL_DEFERRED_VIDEO_FILTER 0x966ad201U -#define MENU_LABEL_DEFERRED_CORE_LIST_SET 0xa6d5fdb4U -#define MENU_LABEL_DEFERRED_DATABASE_MANAGER_LIST 0x7c0b704fU -#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST 0x45446638U -#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_DEVELOPER 0xcbd89be5U -#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_PUBLISHER 0x125e594dU -#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_ORIGIN 0x4ebaa767U -#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_FRANCHISE 0x77f9eff2U -#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_EDGE_MAGAZINE_RATING 0x1c7f8a43U -#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_EDGE_MAGAZINE_ISSUE 0xaaeebde7U -#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_FAMITSU_MAGAZINE_RATING 0xbf7ff5e7U -#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_ENHANCEMENT_HW 0x9866bda3U -#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_RELEASEMONTH 0x2b36ce66U -#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_RELEASEYEAR 0x9c7c6e91U -#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_ESRB_RATING 0x68eba20fU -#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_ELSPA_RATING 0x8bf6ab18U -#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_PEGI_RATING 0x5fc77328U -#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_CERO_RATING 0x24f6172cU -#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_BBFC_RATING 0x0a8e67f0U -#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_MAX_USERS 0xbfcba816U -#define MENU_LABEL_DEFERRED_RDB_ENTRY_DETAIL 0xc35416c0U -#define MENU_LABEL_DEFERRED_RPL_ENTRY_ACTIONS 0x358a7494U -#define MENU_LABEL_DEFERRED_CORE_LIST 0xf157d289U -#define MENU_LABEL_DEFERRED_CORE_UPDATER_LIST 0xc315f682U -#define MENU_LABEL_DEFERRED_DRIVER_SETTINGS_LIST 0xaa5efefcU -#define MENU_LABEL_DEFERRED_VIDEO_SETTINGS_LIST 0x83c65827U -#define MENU_LABEL_DEFERRED_AUDIO_SETTINGS_LIST 0x5bba25e2U -#define MENU_LABEL_DEFERRED_PLAYLIST_SETTINGS_LIST 0x9518e0c7U -#define MENU_LABEL_DEFERRED_INPUT_SETTINGS_LIST 0x050bec60U -#define MENU_LABEL_DEFERRED_USER_BINDS_LIST 0x28c5750eU -#define MENU_LABEL_DEFERRED_ACCOUNTS_CHEEVOS_LIST 0x1322324cU -#define MENU_LABEL_DEFERRED_ACCOUNTS_LIST 0x3d2b8860U -#define MENU_LABEL_DEFERRED_ARCHIVE_ACTION_DETECT_CORE 0xdc9c0064U -#define MENU_LABEL_DEFERRED_ARCHIVE_ACTION 0x7faf0284U -#define MENU_LABEL_DEFERRED_ARCHIVE_OPEN_DETECT_CORE 0xd9452498U -#define MENU_LABEL_DEFERRED_ARCHIVE_OPEN 0xfa0938b8U -#define MENU_LABEL_DEFERRED_CORE_CONTENT_LIST 0x76150c63U -#define MENU_LABEL_DEFERRED_LAKKA_LIST 0x3db437c4U -#define MENU_LABEL_DEFERRED_INPUT_HOTKEY_BINDS_LIST 0x10b41d97U - -/* Cheevos settings */ - -#define MENU_LABEL_CHEEVOS_DESCRIPTION 0x7e00e0f5U - -/* Playlist settings */ - -#define MENU_LABEL_PLAYLIST_SETTINGS_BEGIN 0x80a8d2cbU - -/* Accounts settings */ - -#define MENU_LABEL_ACCOUNTS_CHEEVOS_PASSWORD 0x45cf62e3U -#define MENU_LABEL_ACCOUNTS_CHEEVOS_USERNAME 0x2bf153f0U -#define MENU_LABEL_ACCOUNTS_RETRO_ACHIEVEMENTS 0xe6b7c16cU -#define MENU_LABEL_ACCOUNTS_LIST 0x774c15a0U - -#define MENU_LABEL_VALUE_ACCOUNTS_LIST_END 0x3d559522U - - -#define MENU_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST 0xb4f82700U - -/* Scan values */ -#define MENU_LABEL_SCAN_THIS_DIRECTORY 0x6921b775U -#define MENU_LABEL_SCAN_DIRECTORY 0x57de303eU -#define MENU_LABEL_SCAN_FILE 0xd5d1eee9U - -/* Online updater settings */ - -#define MENU_LABEL_UPDATE_LAKKA 0x19b51eebU - -/* Information settings */ - -#define MENU_LABEL_INFORMATION_LIST 0x225e7606U -#define MENU_LABEL_SYSTEM_INFORMATION 0x206ebf0fU -#define MENU_LABEL_NETWORK_INFORMATION 0x73ae3cb4U -#define MENU_LABEL_DEBUG_INFORMATION 0xeb0d82b1U - -#define MENU_LABEL_CONTENT_SETTINGS 0xe789f7f6U - -#define MENU_LABEL_RESET 0x10474288U - -#define MENU_LABEL_ARCHIVE_MODE 0x7fac00cbU -#define MENU_LABEL_USE_THIS_DIRECTORY 0xc51d351dU -#define MENU_LABEL_SAVE_STATE 0x3a4849b5U -#define MENU_LABEL_LOAD_STATE 0xa39eb286U -#define MENU_LABEL_REWIND 0x1931d5aeU -#define MENU_LABEL_SHADER_NEXT 0x54d359baU -#define MENU_LABEL_SHADER_PREV 0x54d4a758U -#define MENU_LABEL_FRAME_ADVANCE 0xd80302a1U -#define MENU_LABEL_MOVIE_RECORD_TOGGLE 0xa2d2ff04U -#define MENU_LABEL_L_X_PLUS 0xd7370d4bU -#define MENU_LABEL_L_X_MINUS 0xbde0aaf3U -#define MENU_LABEL_L_Y_PLUS 0xd98c35ecU -#define MENU_LABEL_L_Y_MINUS 0x0adae7b4U -#define MENU_LABEL_R_X_PLUS 0x60c20a91U -#define MENU_LABEL_R_X_MINUS 0x78cb50f9U -#define MENU_LABEL_R_Y_MINUS 0xc5c58dbaU -#define MENU_LABEL_R_Y_PLUS 0x63173332U -#define MENU_LABEL_BLOCK_SRAM_OVERWRITE 0xc4e88d08U -#define MENU_LABEL_CORE_SPECIFIC_CONFIG 0x3c9a55e8U -#define MENU_LABEL_GAME_SPECIFIC_OPTIONS 0x142ec90fU -#define MENU_LABEL_SCREENSHOT 0x9a37f083U -#define MENU_LABEL_SCREEN_RESOLUTION 0x5c9b3a58U - -/* Menu settings */ -#define MENU_LABEL_THUMBNAILS 0x0a3ec67cU -#define MENU_LABEL_SAVESTATE_AUTO_SAVE 0xf6f4a05bU -#define MENU_LABEL_SAVESTATE_AUTO_LOAD 0xf6f1028cU -#define MENU_LABEL_SAVESTATE_AUTO_INDEX 0xd4da8b84U -#define MENU_LABEL_XMB_FONT 0x0ECA56CA2 -#define MENU_LABEL_XMB_THEME 0x824c5a7eU -#define MENU_LABEL_XMB_GRADIENT 0x18e63099U -#define MENU_LABEL_XMB_RIBBON_ENABLE 0x8e89c3edU - -#define MENU_LABEL_PERFCNT_ENABLE 0x6823dbddU - -/* Video settings */ -#define MENU_LABEL_VIDEO_FONT_PATH 0xd0de729eU -#define MENU_LABEL_VIDEO_VI_WIDTH 0x6e4a6d3aU -#define MENU_LABEL_VIDEO_VFILTER 0x664f8397U -#define MENU_LABEL_VIDEO_GAMMA 0x08a951beU - - -#define MENU_LABEL_VIDEO_SHADER_PRESET_SAVE_AS 0x3d6e5ce5U -#define MENU_LABEL_VIDEO_SHADER_DEFAULT_FILTER 0x4468cb1bU -#define MENU_LABEL_VIDEO_SHADER_FILTER_PASS 0x1906c38dU -#define MENU_LABEL_VIDEO_SHADER_SCALE_PASS 0x18f7b82fU -#define MENU_LABEL_VIDEO_SHADER_NUM_PASSES 0x79b2992fU -#define MENU_LABEL_VIDEO_SHADER_PARAMETERS 0x9895c3e5U -#define MENU_LABEL_VIDEO_SHADER_PRESET_PARAMETERS 0xd18158d7U -#define MENU_LABEL_VIDEO_SHADER_PASS 0x4fa31028U -#define MENU_LABEL_VIDEO_SHADER_PRESET 0xc5d3bae4U - -/* Netplay settings */ -#define MENU_LABEL_NETPLAY_FLIP_PLAYERS 0x801425abU - -/* Input settings */ -#define MENU_LABEL_INPUT_OVERLAY 0x24e24796U -#define MENU_LABEL_INPUT_KEYBOARD_GAMEPAD_MAPPING_TYPE 0x3665cbb0U - -#define MENU_LABEL_INPUT_HOTKEY_BINDS_BEGIN 0x5a56139bU -#define MENU_LABEL_INPUT_SMALL_KEYBOARD_ENABLE 0xe6736fc3U -#define MENU_LABEL_INPUT_ICADE_ENABLE 0xcd534dd0U -#define MENU_LABEL_INPUT_AUTODETECT_ENABLE 0xb1e07facU -#define MENU_LABEL_INPUT_DUTY_CYCLE 0xec787129U -#define MENU_LABEL_INPUT_BIND_DEVICE_ID 0xd1ea94ecU -#define MENU_LABEL_INPUT_BIND_DEVICE_TYPE 0xf6e9f041U -#define MENU_LABEL_INPUT_AXIS_THRESHOLD 0xe95c2095U - -#define MENU_LABEL_INPUT_OSK_OVERLAY 0x11f1c582U - -/* Record settings */ - -#define MENU_LABEL_RECORD_USE_OUTPUT_DIRECTORY 0x8343eff4U -#define MENU_LABEL_RECORD_CONFIG 0x11c3daf9U -#define MENU_LABEL_RECORD_PATH 0x016d7afaU -#define MENU_LABEL_RECORD_ENABLE 0x1654e22aU - -/* Cheat options */ - -#define MENU_LABEL_CHEAT_DATABASE_PATH 0x01388b8aU -#define MENU_LABEL_CHEAT_FILE_LOAD 0x57336148U -#define MENU_LABEL_CHEAT_INDEX_MINUS 0x57f58b6cU -#define MENU_LABEL_CHEAT_INDEX_PLUS 0x678542a4U -#define MENU_LABEL_CHEAT_TOGGLE 0xe515e0cbU -#define MENU_LABEL_CHEAT_FILE_SAVE_AS 0x1f58dccaU -#define MENU_LABEL_CHEAT_APPLY_CHANGES 0xde88aa27U - -/* Disk settings */ - -#define MENU_LABEL_DISK_EJECT_TOGGLE 0x49633fbbU -#define MENU_LABEL_DISK_NEXT 0xeeaf6c6eU -#define MENU_LABEL_DISK_CYCLE_TRAY_STATUS 0x3035cdc1U -#define MENU_LABEL_DISK_INDEX 0x6c14bf54U -#define MENU_LABEL_DISK_OPTIONS 0xc61ab5fbU -#define MENU_LABEL_DISK_IMAGE_APPEND 0x5af7d709U - -/* Menu settings */ - -#define MENU_LABEL_MENU_TOGGLE 0xfb22e3dbU -#define MENU_LABEL_MENU_WALLPAPER 0x3b84de01U -#define MENU_LABEL_MENU_LINEAR_FILTER 0x5fe9128cU -#define MENU_LABEL_MENU_THROTTLE_FRAMERATE 0x9a8681c5U -#define MENU_LABEL_MENU_SETTINGS 0x61e4544bU - -#define MENU_LABEL_ENABLE_HOTKEY 0xc04037bfU -#define MENU_LABEL_GRAB_MOUSE_TOGGLE 0xb2869aaaU -#define MENU_LABEL_STATE_SLOT_DECREASE 0xe48b8082U -#define MENU_LABEL_STATE_SLOT_INCREASE 0x36a0cbb0U - -/* Libretro settings */ -#define MENU_LABEL_LIBRETRO_LOG_LEVEL 0x57971ac0U - -/* Directory settings */ - -#define MENU_LABEL_CURSOR_DIRECTORY 0xdee8d377U -#define MENU_LABEL_OSK_OVERLAY_DIRECTORY 0xcce86287U -#define MENU_LABEL_JOYPAD_AUTOCONFIG_DIR 0x2f4822d8U -#define MENU_LABEL_RECORDING_OUTPUT_DIRECTORY 0x30bece06U -#define MENU_LABEL_RECORDING_CONFIG_DIRECTORY 0x3c3f274bU -#define MENU_LABEL_LIBRETRO_DIR_PATH 0x1af1eb72U -#define MENU_LABEL_AUDIO_FILTER_DIR 0x4bd96ebaU -#define MENU_LABEL_VIDEO_SHADER_DIR 0x30f53b10U -#define MENU_LABEL_VIDEO_FILTER_DIR 0x67603f1fU -#define MENU_LABEL_SCREENSHOT_DIRECTORY 0x552612d7U -#define MENU_LABEL_SYSTEM_DIRECTORY 0x35a6fb9eU -#define MENU_LABEL_INPUT_REMAPPING_DIRECTORY 0x5233c20bU -#define MENU_LABEL_OVERLAY_DIRECTORY 0xc4ed3d1bU -#define MENU_LABEL_SAVEFILE_DIRECTORY 0x92773488U -#define MENU_LABEL_SAVESTATE_DIRECTORY 0x90551289U -#define MENU_LABEL_DYNAMIC_WALLPAPERS_DIRECTORY 0x62f975b8U -#define MENU_LABEL_THUMBNAILS_DIRECTORY 0xdea77410U -#define MENU_LABEL_RGUI_BROWSER_DIRECTORY 0xa86cba73U -#define MENU_LABEL_CONTENT_DATABASE_DIRECTORY 0x6b443f80U -#define MENU_LABEL_PLAYLIST_DIRECTORY 0x6361820bU -#define MENU_LABEL_CORE_ASSETS_DIRECTORY 0x8ba5ee54U -#define MENU_LABEL_CONTENT_DIRECTORY 0x7738dc14U -#define MENU_LABEL_RGUI_CONFIG_DIRECTORY 0x0cb3e005U -#define MENU_LABEL_ASSETS_DIRECTORY 0xde1ae8ecU -#define MENU_LABEL_CACHE_DIRECTORY 0x851dfb8dU - -/* RDB settings */ - -#define MENU_LABEL_NO_PLAYLIST_ENTRIES_AVAILABLE 0x8888c5acU -#define MENU_LABEL_RDB_ENTRY_START_CONTENT 0x95025a55U -#define MENU_LABEL_RDB_ENTRY_PUBLISHER 0x4d7bcdfbU -#define MENU_LABEL_RDB_ENTRY_DEVELOPER 0x06f61093U -#define MENU_LABEL_RDB_ENTRY_ORIGIN 0xb176aad5U -#define MENU_LABEL_RDB_ENTRY_FRANCHISE 0xb31764a0U -#define MENU_LABEL_RDB_ENTRY_ENHANCEMENT_HW 0x79ee4f11U -#define MENU_LABEL_RDB_ENTRY_ESRB_RATING 0xe138fa3dU -#define MENU_LABEL_RDB_ENTRY_BBFC_RATING 0x82dbc01eU -#define MENU_LABEL_RDB_ENTRY_ELSPA_RATING 0x0def0906U -#define MENU_LABEL_RDB_ENTRY_PEGI_RATING 0xd814cb56U -#define MENU_LABEL_RDB_ENTRY_CERO_RATING 0x9d436f5aU -#define MENU_LABEL_RDB_ENTRY_EDGE_MAGAZINE_RATING 0x9735f631U -#define MENU_LABEL_RDB_ENTRY_EDGE_MAGAZINE_ISSUE 0xd5706415U -#define MENU_LABEL_RDB_ENTRY_FAMITSU_MAGAZINE_RATING 0x01a50315U -#define MENU_LABEL_RDB_ENTRY_RELEASE_MONTH 0xad2f2c54U -#define MENU_LABEL_RDB_ENTRY_RELEASE_YEAR 0x14c9c6bfU -#define MENU_LABEL_RDB_ENTRY_MAX_USERS 0xfae91cc4U - -#define MENU_LABEL_DETECT_CORE_LIST 0xaa07c341U -#define MENU_LABEL_DETECT_CORE_LIST_OK 0xabba2a7aU -#define MENU_LABEL_CLOSE_CONTENT 0x4b622170U -#define MENU_LABEL_CORE_LIST 0xa22bb14dU -#define MENU_LABEL_MANAGEMENT 0x2516c88aU -#define MENU_LABEL_FRONTEND_COUNTERS 0xe5696877U -#define MENU_LABEL_CORE_COUNTERS 0x64cc83e0U -#define MENU_LABEL_ACHIEVEMENT_LIST 0x7b90fc49U -#define MENU_LABEL_CORE_INFORMATION 0xb638e0d3U -#define MENU_LABEL_CORE_OPTIONS 0xf65e60f9U -#define MENU_LABEL_SHADER_OPTIONS 0x1f7d2fc7U -#define MENU_LABEL_CORE_CHEAT_OPTIONS 0x9293171dU -#define MENU_LABEL_CORE_INPUT_REMAPPING_OPTIONS 0x7836a8caU -#define MENU_LABEL_DATABASE_MANAGER_LIST 0x7f853d8fU -#define MENU_LABEL_CURSOR_MANAGER_LIST 0xa969e378U -#define MENU_LABEL_REMAP_FILE_LOAD 0x9c2799b8U -#define MENU_LABEL_INFO_SCREEN 0xd97853d0U -#define MENU_LABEL_CUSTOM_RATIO 0xf038731eU -#define MENU_LABEL_PAL60_ENABLE 0x62bc416eU -#define MENU_LABEL_CONTENT_HISTORY_PATH 0x6f22fb9dU -#define MENU_LABEL_RECORDING_SETTINGS 0x1a80b313U -#define MENU_LABEL_ONSCREEN_KEYBOARD_OVERLAY_SETTINGS 0xa6de9ba6U -#define MENU_LABEL_PLAYLIST_SETTINGS 0xdb3e0e07U -#define MENU_LABEL_ARCHIVE_SETTINGS 0x78e85398U -#define MENU_LABEL_DIRECTORY_SETTINGS 0xb817bd2bU -#define MENU_LABEL_SHADER_APPLY_CHANGES 0x4f7306b9U -#define MENU_LABEL_ONSCREEN_DISPLAY_SETTINGS 0x67571029U -#define MENU_LABEL_CUSTOM_BIND 0x1e84b3fcU -#define MENU_LABEL_CUSTOM_BIND_ALL 0x79ac14f4U -#define MENU_LABEL_CUSTOM_BIND_DEFAULTS 0xe88f7b13U -#define MENU_LABEL_CONFIGURATIONS 0x3e930a50U -#define MENU_LABEL_REMAP_FILE_SAVE_CORE 0x7c9d4c8fU -#define MENU_LABEL_REMAP_FILE_SAVE_GAME 0x7c9f41e0U -#define MENU_LABEL_CONTENT_COLLECTION_LIST 0x32d1df83U -#define MENU_LABEL_OSK_ENABLE 0x8e208498U -#define MENU_LABEL_EXIT_EMULATOR 0x86d5d467U -#define MENU_LABEL_COLLECTION 0x5fea5991U - -#define MENU_LABEL_OPEN_ARCHIVE 0x78c0ca58U -#define MENU_LABEL_OPEN_ARCHIVE_DETECT_CORE 0x92442638U -#define MENU_LABEL_LOAD_ARCHIVE_DETECT_CORE 0x681f2f46U -#define MENU_LABEL_LOAD_ARCHIVE 0xc3834e66U - -/* Help */ -#define MENU_LABEL_REWIND_ENABLE 0x9761e074U -#define MENU_LABEL_REWIND_GRANULARITY 0xe859cbdfU - -#define MENU_LABEL_LIBRETRO_INFO_PATH 0xe552b25fU - -#define MENU_LABEL_AUTOSAVE_INTERVAL 0xecc87351U - -#define MENU_LABEL_CONFIG_SAVE_ON_EXIT 0x79b590feU - -#define MENU_LABEL_CAMERA_ALLOW 0xc14d302cU -#define MENU_LABEL_LOCATION_ALLOW 0xf089275cU - -#define MENU_LABEL_OVERLAY_NEXT 0x7a459145U - -#define MENU_LABEL_INPUT_DRIVER 0x4c087840U -#define MENU_LABEL_INPUT_DRIVER_LINUXRAW 0xc33c6b9fU -#define MENU_LABEL_INPUT_DRIVER_UDEV 0x7c9eeeb9U - -#define MENU_LABEL_AUDIO_MUTE 0xe0ca1151U -#define MENU_LABEL_AUDIO_DSP_PLUGIN 0x4a69572bU -#define MENU_LABEL_AUDIO_MAX_TIMING_SKEW 0x4c96f75cU - -#define MENU_LABEL_AUDIO_RESAMPLER_DRIVER 0xedcba9ecU -#define MENU_LABEL_AUDIO_RESAMPLER_DRIVER_SINC 0x7c9dec52U -#define MENU_LABEL_AUDIO_RESAMPLER_DRIVER_CC 0x0059732bU - -#define MENU_LABEL_VIDEO_DRIVER 0x1805a5e7U -#define MENU_LABEL_VIDEO_DRIVER_GL 0x005977f8U -#define MENU_LABEL_VIDEO_DRIVER_SDL2 0x7c9dd69aU -#define MENU_LABEL_VIDEO_DRIVER_SDL1 0x0b88a968U -#define MENU_LABEL_VIDEO_DRIVER_D3D 0x0b886340U -#define MENU_LABEL_VIDEO_DRIVER_EXYNOS 0xfc37c54bU -#define MENU_LABEL_VIDEO_DRIVER_SUNXI 0x10620e3cU -#define MENU_LABEL_VIDEO_ROTATION 0x4ce6882bU -#define MENU_LABEL_VIDEO_SCALE 0x09835d63U -#define MENU_LABEL_VIDEO_CROP_OVERSCAN 0x861f7a2fU -#define MENU_LABEL_VIDEO_SCALE_INTEGER 0x65c4b090U -#define MENU_LABEL_VIDEO_VSYNC 0x09c2d34eU -#define MENU_LABEL_VIDEO_BLACK_FRAME_INSERTION 0x53477f5cU -#define MENU_LABEL_VIDEO_HARD_SYNC_FRAMES 0xce0ece13U -#define MENU_LABEL_VIDEO_FRAME_DELAY 0xd4aa9df4U -#define MENU_LABEL_VIDEO_FULLSCREEN 0x9506dd4eU -#define MENU_LABEL_VIDEO_SWAP_INTERVAL 0x5673ff9aU -#define MENU_LABEL_VIDEO_GPU_SCREENSHOT 0xee2fcb44U -#define MENU_LABEL_VIDEO_FILTER 0x1c0eb741U -#define MENU_LABEL_VIDEO_REFRESH_RATE_AUTO 0x9addb6cdU -#define MENU_LABEL_VIDEO_THREADED 0x0626179cU -#define MENU_LABEL_VIDEO_MONITOR_INDEX 0xb6fcdc9aU -#define MENU_LABEL_VIDEO_HARD_SYNC 0xdcd623b6U -#define MENU_LABEL_RGUI_SHOW_START_SCREEN 0x6b38f0e8U -#define MENU_LABEL_PAUSE_NONACTIVE 0x580bf549U -#define MENU_LABEL_AUDIO_DEVICE 0x2574eac6U -#define MENU_LABEL_AUDIO_VOLUME 0x502173aeU -#define MENU_LABEL_AUDIO_RATE_CONTROL_DELTA 0xc8bde3cbU -#define MENU_LABEL_SLOWMOTION_RATIO 0x626b3ffeU -#define MENU_LABEL_FASTFORWARD_RATIO 0x3a0c2706U -#define MENU_LABEL_INPUT_TURBO_PERIOD 0xf7a97482U -#define MENU_LABEL_LOG_VERBOSITY 0x6648c96dU -#define MENU_LABEL_SLOWMOTION 0x6a269ea0U -#define MENU_LABEL_HOLD_FAST_FORWARD 0xebe2e4cdU -#define MENU_LABEL_PAUSE_TOGGLE 0x557634e4U -#define MENU_LABEL_WELCOME_TO_RETROARCH 0xbcff0b3cU -#define MENU_LABEL_HELP_CONTROLS 0x04859221U -#define MENU_LABEL_HELP_LIST 0x006af669U -#define MENU_LABEL_HELP_WHAT_IS_A_CORE 0x83fcbc44U -#define MENU_LABEL_HELP_LOADING_CONTENT 0x231d8245U -#define MENU_LABEL_HELP_SCANNING_CONTENT 0x1dec52b8U -#define MENU_LABEL_HELP_CHANGE_VIRTUAL_GAMEPAD 0x6e66ef07U -#define MENU_LABEL_HELP_AUDIO_VIDEO_TROUBLESHOOTING 0xd44d395cU -#define MENU_LABEL_TURBO 0x107434f1U -#define MENU_LABEL_VOLUME_UP 0xa66e9681U -#define MENU_LABEL_VOLUME_DOWN 0xfc64f3d4U -#define MENU_LABEL_VALUE_EXTRACTING_PLEASE_WAIT 0xec5a348bU - -#define MENU_LABEL_VIDEO_DISABLE_COMPOSITION 0x5cbb6222U -#define MENU_LABEL_VALUE_MENU_CONTROLS_PROLOG 0x72674cdfU -#define MENU_LABEL_VALUE_HELP_WHAT_IS_A_CORE 0xf3b0f77eU -#define MENU_LABEL_VALUE_HELP_LOADING_CONTENT 0x70bab027U -#define MENU_LABEL_VALUE_HELP_LIST 0x6c57426aU -#define MENU_LABEL_VALUE_HELP_CONTROLS 0xe5c9f6a2U -#define MENU_LABEL_VALUE_WHAT_IS_A_CORE_DESC 0xc832957eU -#define MENU_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD 0x27ed0204U -#define MENU_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD_DESC 0x9d0e79dbU -#define MENU_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING 0xd0e5c3ffU -#define MENU_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC 0x60031d7aU -#define MENU_LABEL_VALUE_HELP_SCANNING_CONTENT 0x74b36f11U -#define MENU_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC 0xac947056U - -/* Main menu */ -#define MENU_LABEL_LOAD_CONTENT 0x828943c3U -#define MENU_LABEL_LOAD_CONTENT_LIST 0x5745de1fU -#define MENU_LABEL_LOAD_CONTENT_HISTORY 0xfe1d79e5U -#define MENU_LABEL_ADD_CONTENT_LIST 0x046f4668U -#define MENU_LABEL_ONLINE_UPDATER 0xcac0025eU -#define MENU_LABEL_SETTINGS 0x1304dc16U -#define MENU_LABEL_SAVE_CURRENT_CONFIG 0x8840ba8bU -#define MENU_LABEL_SAVE_NEW_CONFIG 0xcce9ab72U -#define MENU_LABEL_HELP 0x7c97d2eeU -#define MENU_LABEL_QUIT_RETROARCH 0x84b0bc71U - -/* File values */ - -#define MENU_VALUE_FILE_WEBM 0x7ca00b50U -#define MENU_VALUE_FILE_F4F 0x0b886be5U -#define MENU_VALUE_FILE_F4V 0x0b886bf5U -#define MENU_VALUE_FILE_OGM 0x0b8898c8U -#define MENU_VALUE_FILE_MKV 0x0b8890d3U -#define MENU_VALUE_FILE_AVI 0x0b885f25U -#define MENU_VALUE_FILE_M4A 0x0b8889a7U -#define MENU_VALUE_FILE_3GP 0x0b87998fU -#define MENU_VALUE_FILE_MP4 0x0b889136U -#define MENU_VALUE_FILE_MP3 0x0b889135U -#define MENU_VALUE_FILE_FLAC 0x7c96d67bU -#define MENU_VALUE_FILE_OGG 0x0b8898c2U -#define MENU_VALUE_FILE_FLV 0x0b88732dU -#define MENU_VALUE_FILE_WAV 0x0b88ba13U -#define MENU_VALUE_FILE_MOV 0x0b889157U -#define MENU_VALUE_FILE_WMV 0x0b88bb9fU - -#define MENU_VALUE_FILE_JPG 0x0b8884a6U -#define MENU_VALUE_FILE_JPEG 0x7c99198bU -#define MENU_VALUE_FILE_JPG_CAPS 0x0b87f846U -#define MENU_VALUE_FILE_JPEG_CAPS 0x7c87010bU -#define MENU_VALUE_FILE_PNG 0x0b889deaU -#define MENU_VALUE_FILE_PNG_CAPS 0x0b88118aU -#define MENU_VALUE_FILE_TGA 0x0b88ae01U -#define MENU_VALUE_FILE_BMP 0x0b886244U - -#define MENU_VALUE_MD5 0x0b888fabU -#define MENU_VALUE_SHA1 0x7c9de632U -#define MENU_VALUE_CRC 0x0b88671dU -#define MENU_VALUE_MORE 0x0b877cafU -#define MENU_VALUE_HORIZONTAL_MENU 0x35761704U -#define MENU_VALUE_ON 0x005974c2U -#define MENU_VALUE_OFF 0x0b880c40U -#define MENU_VALUE_COMP 0x6a166ba5U -#define MENU_VALUE_MUSIC 0xc4a73997U -#define MENU_VALUE_IMAGE 0xbab7ebf9U -#define MENU_VALUE_MOVIE 0xc43c4bf6U -#define MENU_VALUE_CORE 0x6a167f7fU -#define MENU_VALUE_CURSOR 0x57bba8b4U -#define MENU_VALUE_FILE 0x6a496536U -#define MENU_VALUE_RDB 0x0b00f54eU -#define MENU_VALUE_DIR 0x0af95f55U -#define MENU_VALUE_NO_CORE 0x7d5472cbU -#define MENU_VALUE_GLSLP 0x0f840c87U -#define MENU_VALUE_CGP 0x0b8865bfU -#define MENU_VALUE_GLSL 0x7c976537U -#define MENU_VALUE_HLSL 0x7c97f198U -#define MENU_VALUE_HLSLP 0x0f962508U -#define MENU_VALUE_CG 0x0059776fU -#define MENU_VALUE_SLANG 0x105ce63aU -#define MENU_VALUE_SLANGP 0x1bf9adeaU - -int menu_hash_get_help_de(uint32_t hash, char *s, size_t len); - -int menu_hash_get_help_es(uint32_t hash, char *s, size_t len); - -int menu_hash_get_help_fr(uint32_t hash, char *s, size_t len); - -int menu_hash_get_help_it(uint32_t hash, char *s, size_t len); - -int menu_hash_get_help_nl(uint32_t hash, char *s, size_t len); - -int menu_hash_get_help_pl(uint32_t hash, char *s, size_t len); - -int menu_hash_get_help_pt(uint32_t hash, char *s, size_t len); - -int menu_hash_get_help_eo(uint32_t hash, char *s, size_t len); - -int menu_hash_get_help_us(uint32_t hash, char *s, size_t len); - -int menu_hash_get_help(uint32_t hash, char *s, size_t len); - -RETRO_END_DECLS - -#endif diff --git a/menu/menu_input.c b/menu/menu_input.c index 91cc85ef0e..9a4b340f8c 100644 --- a/menu/menu_input.c +++ b/menu/menu_input.c @@ -38,7 +38,6 @@ #include "menu_setting.h" #include "menu_shader.h" #include "menu_navigation.h" -#include "menu_hash.h" #include "../general.h" #include "../managers/cheat_manager.h" diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 5c284b626c..de255e15f1 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -43,7 +43,6 @@ #include "menu_display.h" #include "menu_input.h" #include "menu_navigation.h" -#include "menu_hash.h" #include "../msg_hash.h" #include "../defaults.h" diff --git a/menu/menu_setting.h b/menu/menu_setting.h index 47756f862e..6a7cd2ff8f 100644 --- a/menu/menu_setting.h +++ b/menu/menu_setting.h @@ -26,7 +26,6 @@ #include "../command.h" #include "../input/input_driver.h" -#include "menu_hash.h" #include "../msg_hash.h" RETRO_BEGIN_DECLS diff --git a/menu/menu_shader.c b/menu/menu_shader.c index bf107c0ce9..3dfe43a0a9 100644 --- a/menu/menu_shader.c +++ b/menu/menu_shader.c @@ -21,7 +21,6 @@ #include #include "menu_driver.h" -#include "menu_hash.h" #include "menu_shader.h" #include "../configuration.h" #include "../runloop.h" diff --git a/msg_hash.c b/msg_hash.c index f3c7be7161..78f0829f4e 100644 --- a/msg_hash.c +++ b/msg_hash.c @@ -22,6 +22,53 @@ #include "configuration.h" +int menu_hash_get_help(uint32_t hash, char *s, size_t len) +{ + int ret = -1; + settings_t *settings = config_get_ptr(); + + if (!settings) + goto end; + +#ifdef HAVE_LANGEXTRA + switch (settings->user_language) + { + case RETRO_LANGUAGE_FRENCH: + ret = menu_hash_get_help_fr(hash, s, len); + break; + case RETRO_LANGUAGE_GERMAN: + ret = menu_hash_get_help_de(hash, s, len); + break; + case RETRO_LANGUAGE_SPANISH: + ret = menu_hash_get_help_es(hash, s, len); + break; + case RETRO_LANGUAGE_ITALIAN: + ret = menu_hash_get_help_it(hash, s, len); + break; + case RETRO_LANGUAGE_PORTUGUESE: + ret = menu_hash_get_help_pt(hash, s, len); + break; + case RETRO_LANGUAGE_DUTCH: + ret = menu_hash_get_help_nl(hash, s, len); + break; + case RETRO_LANGUAGE_ESPERANTO: + ret = menu_hash_get_help_eo(hash, s, len); + break; + case RETRO_LANGUAGE_POLISH: + ret = menu_hash_get_help_pl(hash, s, len); + break; + default: + break; + } +#endif + + if (ret == 0) + return ret; + +end: + return menu_hash_get_help_us(hash, s, len); +} + const char *msg_hash_to_str(enum msg_hash_enums msg) { const char *ret = NULL; diff --git a/msg_hash.h b/msg_hash.h index 9f203308a3..1bbcd8d3bd 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -22,6 +22,8 @@ #include +RETRO_BEGIN_DECLS + enum msg_hash_enums { MSG_UNKNOWN = 0, @@ -1402,31 +1404,488 @@ enum msg_hash_enums MENU_ENUM_LABEL_CB_CORE_THUMBNAILS_DOWNLOAD }; -RETRO_BEGIN_DECLS + +/* Callback strings */ + +#define CB_CORE_UPDATER_DOWNLOAD 0x7412da7dU +#define CB_UPDATE_ASSETS 0xbf85795eU + +/* Deferred */ + +#define MENU_LABEL_DEFERRED_THUMBNAILS_UPDATER_LIST 0x364dfa2bU +#define MENU_LABEL_DEFERRED_VIDEO_FILTER 0x966ad201U +#define MENU_LABEL_DEFERRED_CORE_LIST_SET 0xa6d5fdb4U +#define MENU_LABEL_DEFERRED_DATABASE_MANAGER_LIST 0x7c0b704fU +#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST 0x45446638U +#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_DEVELOPER 0xcbd89be5U +#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_PUBLISHER 0x125e594dU +#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_ORIGIN 0x4ebaa767U +#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_FRANCHISE 0x77f9eff2U +#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_EDGE_MAGAZINE_RATING 0x1c7f8a43U +#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_EDGE_MAGAZINE_ISSUE 0xaaeebde7U +#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_FAMITSU_MAGAZINE_RATING 0xbf7ff5e7U +#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_ENHANCEMENT_HW 0x9866bda3U +#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_RELEASEMONTH 0x2b36ce66U +#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_RELEASEYEAR 0x9c7c6e91U +#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_ESRB_RATING 0x68eba20fU +#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_ELSPA_RATING 0x8bf6ab18U +#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_PEGI_RATING 0x5fc77328U +#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_CERO_RATING 0x24f6172cU +#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_BBFC_RATING 0x0a8e67f0U +#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_MAX_USERS 0xbfcba816U +#define MENU_LABEL_DEFERRED_RDB_ENTRY_DETAIL 0xc35416c0U +#define MENU_LABEL_DEFERRED_RPL_ENTRY_ACTIONS 0x358a7494U +#define MENU_LABEL_DEFERRED_CORE_LIST 0xf157d289U +#define MENU_LABEL_DEFERRED_CORE_UPDATER_LIST 0xc315f682U +#define MENU_LABEL_DEFERRED_DRIVER_SETTINGS_LIST 0xaa5efefcU +#define MENU_LABEL_DEFERRED_VIDEO_SETTINGS_LIST 0x83c65827U +#define MENU_LABEL_DEFERRED_AUDIO_SETTINGS_LIST 0x5bba25e2U +#define MENU_LABEL_DEFERRED_PLAYLIST_SETTINGS_LIST 0x9518e0c7U +#define MENU_LABEL_DEFERRED_INPUT_SETTINGS_LIST 0x050bec60U +#define MENU_LABEL_DEFERRED_USER_BINDS_LIST 0x28c5750eU +#define MENU_LABEL_DEFERRED_ACCOUNTS_CHEEVOS_LIST 0x1322324cU +#define MENU_LABEL_DEFERRED_ACCOUNTS_LIST 0x3d2b8860U +#define MENU_LABEL_DEFERRED_ARCHIVE_ACTION_DETECT_CORE 0xdc9c0064U +#define MENU_LABEL_DEFERRED_ARCHIVE_ACTION 0x7faf0284U +#define MENU_LABEL_DEFERRED_ARCHIVE_OPEN_DETECT_CORE 0xd9452498U +#define MENU_LABEL_DEFERRED_ARCHIVE_OPEN 0xfa0938b8U +#define MENU_LABEL_DEFERRED_CORE_CONTENT_LIST 0x76150c63U +#define MENU_LABEL_DEFERRED_LAKKA_LIST 0x3db437c4U +#define MENU_LABEL_DEFERRED_INPUT_HOTKEY_BINDS_LIST 0x10b41d97U + +/* Cheevos settings */ + +#define MENU_LABEL_CHEEVOS_DESCRIPTION 0x7e00e0f5U + +/* Playlist settings */ + +#define MENU_LABEL_PLAYLIST_SETTINGS_BEGIN 0x80a8d2cbU + +/* Accounts settings */ + +#define MENU_LABEL_ACCOUNTS_CHEEVOS_PASSWORD 0x45cf62e3U +#define MENU_LABEL_ACCOUNTS_CHEEVOS_USERNAME 0x2bf153f0U +#define MENU_LABEL_ACCOUNTS_RETRO_ACHIEVEMENTS 0xe6b7c16cU +#define MENU_LABEL_ACCOUNTS_LIST 0x774c15a0U + +#define MENU_LABEL_VALUE_ACCOUNTS_LIST_END 0x3d559522U + + +#define MENU_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST 0xb4f82700U + +/* Scan values */ +#define MENU_LABEL_SCAN_THIS_DIRECTORY 0x6921b775U +#define MENU_LABEL_SCAN_DIRECTORY 0x57de303eU +#define MENU_LABEL_SCAN_FILE 0xd5d1eee9U + +/* Online updater settings */ + +#define MENU_LABEL_UPDATE_LAKKA 0x19b51eebU + +/* Information settings */ + +#define MENU_LABEL_INFORMATION_LIST 0x225e7606U +#define MENU_LABEL_SYSTEM_INFORMATION 0x206ebf0fU +#define MENU_LABEL_NETWORK_INFORMATION 0x73ae3cb4U +#define MENU_LABEL_DEBUG_INFORMATION 0xeb0d82b1U + +#define MENU_LABEL_CONTENT_SETTINGS 0xe789f7f6U + +#define MENU_LABEL_RESET 0x10474288U + +#define MENU_LABEL_ARCHIVE_MODE 0x7fac00cbU +#define MENU_LABEL_USE_THIS_DIRECTORY 0xc51d351dU +#define MENU_LABEL_SAVE_STATE 0x3a4849b5U +#define MENU_LABEL_LOAD_STATE 0xa39eb286U +#define MENU_LABEL_REWIND 0x1931d5aeU +#define MENU_LABEL_SHADER_NEXT 0x54d359baU +#define MENU_LABEL_SHADER_PREV 0x54d4a758U +#define MENU_LABEL_FRAME_ADVANCE 0xd80302a1U +#define MENU_LABEL_MOVIE_RECORD_TOGGLE 0xa2d2ff04U +#define MENU_LABEL_L_X_PLUS 0xd7370d4bU +#define MENU_LABEL_L_X_MINUS 0xbde0aaf3U +#define MENU_LABEL_L_Y_PLUS 0xd98c35ecU +#define MENU_LABEL_L_Y_MINUS 0x0adae7b4U +#define MENU_LABEL_R_X_PLUS 0x60c20a91U +#define MENU_LABEL_R_X_MINUS 0x78cb50f9U +#define MENU_LABEL_R_Y_MINUS 0xc5c58dbaU +#define MENU_LABEL_R_Y_PLUS 0x63173332U +#define MENU_LABEL_BLOCK_SRAM_OVERWRITE 0xc4e88d08U +#define MENU_LABEL_CORE_SPECIFIC_CONFIG 0x3c9a55e8U +#define MENU_LABEL_GAME_SPECIFIC_OPTIONS 0x142ec90fU +#define MENU_LABEL_SCREENSHOT 0x9a37f083U +#define MENU_LABEL_SCREEN_RESOLUTION 0x5c9b3a58U + +/* Menu settings */ +#define MENU_LABEL_THUMBNAILS 0x0a3ec67cU +#define MENU_LABEL_SAVESTATE_AUTO_SAVE 0xf6f4a05bU +#define MENU_LABEL_SAVESTATE_AUTO_LOAD 0xf6f1028cU +#define MENU_LABEL_SAVESTATE_AUTO_INDEX 0xd4da8b84U +#define MENU_LABEL_XMB_FONT 0x0ECA56CA2 +#define MENU_LABEL_XMB_THEME 0x824c5a7eU +#define MENU_LABEL_XMB_GRADIENT 0x18e63099U +#define MENU_LABEL_XMB_RIBBON_ENABLE 0x8e89c3edU + +#define MENU_LABEL_PERFCNT_ENABLE 0x6823dbddU + +/* Video settings */ +#define MENU_LABEL_VIDEO_FONT_PATH 0xd0de729eU +#define MENU_LABEL_VIDEO_VI_WIDTH 0x6e4a6d3aU +#define MENU_LABEL_VIDEO_VFILTER 0x664f8397U +#define MENU_LABEL_VIDEO_GAMMA 0x08a951beU + + +#define MENU_LABEL_VIDEO_SHADER_PRESET_SAVE_AS 0x3d6e5ce5U +#define MENU_LABEL_VIDEO_SHADER_DEFAULT_FILTER 0x4468cb1bU +#define MENU_LABEL_VIDEO_SHADER_FILTER_PASS 0x1906c38dU +#define MENU_LABEL_VIDEO_SHADER_SCALE_PASS 0x18f7b82fU +#define MENU_LABEL_VIDEO_SHADER_NUM_PASSES 0x79b2992fU +#define MENU_LABEL_VIDEO_SHADER_PARAMETERS 0x9895c3e5U +#define MENU_LABEL_VIDEO_SHADER_PRESET_PARAMETERS 0xd18158d7U +#define MENU_LABEL_VIDEO_SHADER_PASS 0x4fa31028U +#define MENU_LABEL_VIDEO_SHADER_PRESET 0xc5d3bae4U + +/* Netplay settings */ +#define MENU_LABEL_NETPLAY_FLIP_PLAYERS 0x801425abU + +/* Input settings */ +#define MENU_LABEL_INPUT_OVERLAY 0x24e24796U +#define MENU_LABEL_INPUT_KEYBOARD_GAMEPAD_MAPPING_TYPE 0x3665cbb0U + +#define MENU_LABEL_INPUT_HOTKEY_BINDS_BEGIN 0x5a56139bU +#define MENU_LABEL_INPUT_SMALL_KEYBOARD_ENABLE 0xe6736fc3U +#define MENU_LABEL_INPUT_ICADE_ENABLE 0xcd534dd0U +#define MENU_LABEL_INPUT_AUTODETECT_ENABLE 0xb1e07facU +#define MENU_LABEL_INPUT_DUTY_CYCLE 0xec787129U +#define MENU_LABEL_INPUT_BIND_DEVICE_ID 0xd1ea94ecU +#define MENU_LABEL_INPUT_BIND_DEVICE_TYPE 0xf6e9f041U +#define MENU_LABEL_INPUT_AXIS_THRESHOLD 0xe95c2095U + +#define MENU_LABEL_INPUT_OSK_OVERLAY 0x11f1c582U + +/* Record settings */ + +#define MENU_LABEL_RECORD_USE_OUTPUT_DIRECTORY 0x8343eff4U +#define MENU_LABEL_RECORD_CONFIG 0x11c3daf9U +#define MENU_LABEL_RECORD_PATH 0x016d7afaU +#define MENU_LABEL_RECORD_ENABLE 0x1654e22aU + +/* Cheat options */ + +#define MENU_LABEL_CHEAT_DATABASE_PATH 0x01388b8aU +#define MENU_LABEL_CHEAT_FILE_LOAD 0x57336148U +#define MENU_LABEL_CHEAT_INDEX_MINUS 0x57f58b6cU +#define MENU_LABEL_CHEAT_INDEX_PLUS 0x678542a4U +#define MENU_LABEL_CHEAT_TOGGLE 0xe515e0cbU +#define MENU_LABEL_CHEAT_FILE_SAVE_AS 0x1f58dccaU +#define MENU_LABEL_CHEAT_APPLY_CHANGES 0xde88aa27U + +/* Disk settings */ + +#define MENU_LABEL_DISK_EJECT_TOGGLE 0x49633fbbU +#define MENU_LABEL_DISK_NEXT 0xeeaf6c6eU +#define MENU_LABEL_DISK_CYCLE_TRAY_STATUS 0x3035cdc1U +#define MENU_LABEL_DISK_INDEX 0x6c14bf54U +#define MENU_LABEL_DISK_OPTIONS 0xc61ab5fbU +#define MENU_LABEL_DISK_IMAGE_APPEND 0x5af7d709U + +/* Menu settings */ + +#define MENU_LABEL_MENU_TOGGLE 0xfb22e3dbU +#define MENU_LABEL_MENU_WALLPAPER 0x3b84de01U +#define MENU_LABEL_MENU_LINEAR_FILTER 0x5fe9128cU +#define MENU_LABEL_MENU_THROTTLE_FRAMERATE 0x9a8681c5U +#define MENU_LABEL_MENU_SETTINGS 0x61e4544bU + +#define MENU_LABEL_ENABLE_HOTKEY 0xc04037bfU +#define MENU_LABEL_GRAB_MOUSE_TOGGLE 0xb2869aaaU +#define MENU_LABEL_STATE_SLOT_DECREASE 0xe48b8082U +#define MENU_LABEL_STATE_SLOT_INCREASE 0x36a0cbb0U + +/* Libretro settings */ +#define MENU_LABEL_LIBRETRO_LOG_LEVEL 0x57971ac0U + +/* Directory settings */ + +#define MENU_LABEL_CURSOR_DIRECTORY 0xdee8d377U +#define MENU_LABEL_OSK_OVERLAY_DIRECTORY 0xcce86287U +#define MENU_LABEL_JOYPAD_AUTOCONFIG_DIR 0x2f4822d8U +#define MENU_LABEL_RECORDING_OUTPUT_DIRECTORY 0x30bece06U +#define MENU_LABEL_RECORDING_CONFIG_DIRECTORY 0x3c3f274bU +#define MENU_LABEL_LIBRETRO_DIR_PATH 0x1af1eb72U +#define MENU_LABEL_AUDIO_FILTER_DIR 0x4bd96ebaU +#define MENU_LABEL_VIDEO_SHADER_DIR 0x30f53b10U +#define MENU_LABEL_VIDEO_FILTER_DIR 0x67603f1fU +#define MENU_LABEL_SCREENSHOT_DIRECTORY 0x552612d7U +#define MENU_LABEL_SYSTEM_DIRECTORY 0x35a6fb9eU +#define MENU_LABEL_INPUT_REMAPPING_DIRECTORY 0x5233c20bU +#define MENU_LABEL_OVERLAY_DIRECTORY 0xc4ed3d1bU +#define MENU_LABEL_SAVEFILE_DIRECTORY 0x92773488U +#define MENU_LABEL_SAVESTATE_DIRECTORY 0x90551289U +#define MENU_LABEL_DYNAMIC_WALLPAPERS_DIRECTORY 0x62f975b8U +#define MENU_LABEL_THUMBNAILS_DIRECTORY 0xdea77410U +#define MENU_LABEL_RGUI_BROWSER_DIRECTORY 0xa86cba73U +#define MENU_LABEL_CONTENT_DATABASE_DIRECTORY 0x6b443f80U +#define MENU_LABEL_PLAYLIST_DIRECTORY 0x6361820bU +#define MENU_LABEL_CORE_ASSETS_DIRECTORY 0x8ba5ee54U +#define MENU_LABEL_CONTENT_DIRECTORY 0x7738dc14U +#define MENU_LABEL_RGUI_CONFIG_DIRECTORY 0x0cb3e005U +#define MENU_LABEL_ASSETS_DIRECTORY 0xde1ae8ecU +#define MENU_LABEL_CACHE_DIRECTORY 0x851dfb8dU + +/* RDB settings */ + +#define MENU_LABEL_NO_PLAYLIST_ENTRIES_AVAILABLE 0x8888c5acU +#define MENU_LABEL_RDB_ENTRY_START_CONTENT 0x95025a55U +#define MENU_LABEL_RDB_ENTRY_PUBLISHER 0x4d7bcdfbU +#define MENU_LABEL_RDB_ENTRY_DEVELOPER 0x06f61093U +#define MENU_LABEL_RDB_ENTRY_ORIGIN 0xb176aad5U +#define MENU_LABEL_RDB_ENTRY_FRANCHISE 0xb31764a0U +#define MENU_LABEL_RDB_ENTRY_ENHANCEMENT_HW 0x79ee4f11U +#define MENU_LABEL_RDB_ENTRY_ESRB_RATING 0xe138fa3dU +#define MENU_LABEL_RDB_ENTRY_BBFC_RATING 0x82dbc01eU +#define MENU_LABEL_RDB_ENTRY_ELSPA_RATING 0x0def0906U +#define MENU_LABEL_RDB_ENTRY_PEGI_RATING 0xd814cb56U +#define MENU_LABEL_RDB_ENTRY_CERO_RATING 0x9d436f5aU +#define MENU_LABEL_RDB_ENTRY_EDGE_MAGAZINE_RATING 0x9735f631U +#define MENU_LABEL_RDB_ENTRY_EDGE_MAGAZINE_ISSUE 0xd5706415U +#define MENU_LABEL_RDB_ENTRY_FAMITSU_MAGAZINE_RATING 0x01a50315U +#define MENU_LABEL_RDB_ENTRY_RELEASE_MONTH 0xad2f2c54U +#define MENU_LABEL_RDB_ENTRY_RELEASE_YEAR 0x14c9c6bfU +#define MENU_LABEL_RDB_ENTRY_MAX_USERS 0xfae91cc4U + +#define MENU_LABEL_DETECT_CORE_LIST 0xaa07c341U +#define MENU_LABEL_DETECT_CORE_LIST_OK 0xabba2a7aU +#define MENU_LABEL_CLOSE_CONTENT 0x4b622170U +#define MENU_LABEL_CORE_LIST 0xa22bb14dU +#define MENU_LABEL_MANAGEMENT 0x2516c88aU +#define MENU_LABEL_FRONTEND_COUNTERS 0xe5696877U +#define MENU_LABEL_CORE_COUNTERS 0x64cc83e0U +#define MENU_LABEL_ACHIEVEMENT_LIST 0x7b90fc49U +#define MENU_LABEL_CORE_INFORMATION 0xb638e0d3U +#define MENU_LABEL_CORE_OPTIONS 0xf65e60f9U +#define MENU_LABEL_SHADER_OPTIONS 0x1f7d2fc7U +#define MENU_LABEL_CORE_CHEAT_OPTIONS 0x9293171dU +#define MENU_LABEL_CORE_INPUT_REMAPPING_OPTIONS 0x7836a8caU +#define MENU_LABEL_DATABASE_MANAGER_LIST 0x7f853d8fU +#define MENU_LABEL_CURSOR_MANAGER_LIST 0xa969e378U +#define MENU_LABEL_REMAP_FILE_LOAD 0x9c2799b8U +#define MENU_LABEL_INFO_SCREEN 0xd97853d0U +#define MENU_LABEL_CUSTOM_RATIO 0xf038731eU +#define MENU_LABEL_PAL60_ENABLE 0x62bc416eU +#define MENU_LABEL_CONTENT_HISTORY_PATH 0x6f22fb9dU +#define MENU_LABEL_RECORDING_SETTINGS 0x1a80b313U +#define MENU_LABEL_ONSCREEN_KEYBOARD_OVERLAY_SETTINGS 0xa6de9ba6U +#define MENU_LABEL_PLAYLIST_SETTINGS 0xdb3e0e07U +#define MENU_LABEL_ARCHIVE_SETTINGS 0x78e85398U +#define MENU_LABEL_DIRECTORY_SETTINGS 0xb817bd2bU +#define MENU_LABEL_SHADER_APPLY_CHANGES 0x4f7306b9U +#define MENU_LABEL_ONSCREEN_DISPLAY_SETTINGS 0x67571029U +#define MENU_LABEL_CUSTOM_BIND 0x1e84b3fcU +#define MENU_LABEL_CUSTOM_BIND_ALL 0x79ac14f4U +#define MENU_LABEL_CUSTOM_BIND_DEFAULTS 0xe88f7b13U +#define MENU_LABEL_CONFIGURATIONS 0x3e930a50U +#define MENU_LABEL_REMAP_FILE_SAVE_CORE 0x7c9d4c8fU +#define MENU_LABEL_REMAP_FILE_SAVE_GAME 0x7c9f41e0U +#define MENU_LABEL_CONTENT_COLLECTION_LIST 0x32d1df83U +#define MENU_LABEL_OSK_ENABLE 0x8e208498U +#define MENU_LABEL_EXIT_EMULATOR 0x86d5d467U +#define MENU_LABEL_COLLECTION 0x5fea5991U + +#define MENU_LABEL_OPEN_ARCHIVE 0x78c0ca58U +#define MENU_LABEL_OPEN_ARCHIVE_DETECT_CORE 0x92442638U +#define MENU_LABEL_LOAD_ARCHIVE_DETECT_CORE 0x681f2f46U +#define MENU_LABEL_LOAD_ARCHIVE 0xc3834e66U + +/* Help */ +#define MENU_LABEL_REWIND_ENABLE 0x9761e074U +#define MENU_LABEL_REWIND_GRANULARITY 0xe859cbdfU + +#define MENU_LABEL_LIBRETRO_INFO_PATH 0xe552b25fU + +#define MENU_LABEL_AUTOSAVE_INTERVAL 0xecc87351U + +#define MENU_LABEL_CONFIG_SAVE_ON_EXIT 0x79b590feU + +#define MENU_LABEL_CAMERA_ALLOW 0xc14d302cU +#define MENU_LABEL_LOCATION_ALLOW 0xf089275cU + +#define MENU_LABEL_OVERLAY_NEXT 0x7a459145U + +#define MENU_LABEL_INPUT_DRIVER 0x4c087840U +#define MENU_LABEL_INPUT_DRIVER_LINUXRAW 0xc33c6b9fU +#define MENU_LABEL_INPUT_DRIVER_UDEV 0x7c9eeeb9U + +#define MENU_LABEL_AUDIO_MUTE 0xe0ca1151U +#define MENU_LABEL_AUDIO_DSP_PLUGIN 0x4a69572bU +#define MENU_LABEL_AUDIO_MAX_TIMING_SKEW 0x4c96f75cU + +#define MENU_LABEL_AUDIO_RESAMPLER_DRIVER 0xedcba9ecU +#define MENU_LABEL_AUDIO_RESAMPLER_DRIVER_SINC 0x7c9dec52U +#define MENU_LABEL_AUDIO_RESAMPLER_DRIVER_CC 0x0059732bU + +#define MENU_LABEL_VIDEO_DRIVER 0x1805a5e7U +#define MENU_LABEL_VIDEO_DRIVER_GL 0x005977f8U +#define MENU_LABEL_VIDEO_DRIVER_SDL2 0x7c9dd69aU +#define MENU_LABEL_VIDEO_DRIVER_SDL1 0x0b88a968U +#define MENU_LABEL_VIDEO_DRIVER_D3D 0x0b886340U +#define MENU_LABEL_VIDEO_DRIVER_EXYNOS 0xfc37c54bU +#define MENU_LABEL_VIDEO_DRIVER_SUNXI 0x10620e3cU +#define MENU_LABEL_VIDEO_ROTATION 0x4ce6882bU +#define MENU_LABEL_VIDEO_SCALE 0x09835d63U +#define MENU_LABEL_VIDEO_CROP_OVERSCAN 0x861f7a2fU +#define MENU_LABEL_VIDEO_SCALE_INTEGER 0x65c4b090U +#define MENU_LABEL_VIDEO_VSYNC 0x09c2d34eU +#define MENU_LABEL_VIDEO_BLACK_FRAME_INSERTION 0x53477f5cU +#define MENU_LABEL_VIDEO_HARD_SYNC_FRAMES 0xce0ece13U +#define MENU_LABEL_VIDEO_FRAME_DELAY 0xd4aa9df4U +#define MENU_LABEL_VIDEO_FULLSCREEN 0x9506dd4eU +#define MENU_LABEL_VIDEO_SWAP_INTERVAL 0x5673ff9aU +#define MENU_LABEL_VIDEO_GPU_SCREENSHOT 0xee2fcb44U +#define MENU_LABEL_VIDEO_FILTER 0x1c0eb741U +#define MENU_LABEL_VIDEO_REFRESH_RATE_AUTO 0x9addb6cdU +#define MENU_LABEL_VIDEO_THREADED 0x0626179cU +#define MENU_LABEL_VIDEO_MONITOR_INDEX 0xb6fcdc9aU +#define MENU_LABEL_VIDEO_HARD_SYNC 0xdcd623b6U +#define MENU_LABEL_RGUI_SHOW_START_SCREEN 0x6b38f0e8U +#define MENU_LABEL_PAUSE_NONACTIVE 0x580bf549U +#define MENU_LABEL_AUDIO_DEVICE 0x2574eac6U +#define MENU_LABEL_AUDIO_VOLUME 0x502173aeU +#define MENU_LABEL_AUDIO_RATE_CONTROL_DELTA 0xc8bde3cbU +#define MENU_LABEL_SLOWMOTION_RATIO 0x626b3ffeU +#define MENU_LABEL_FASTFORWARD_RATIO 0x3a0c2706U +#define MENU_LABEL_INPUT_TURBO_PERIOD 0xf7a97482U +#define MENU_LABEL_LOG_VERBOSITY 0x6648c96dU +#define MENU_LABEL_SLOWMOTION 0x6a269ea0U +#define MENU_LABEL_HOLD_FAST_FORWARD 0xebe2e4cdU +#define MENU_LABEL_PAUSE_TOGGLE 0x557634e4U +#define MENU_LABEL_WELCOME_TO_RETROARCH 0xbcff0b3cU +#define MENU_LABEL_HELP_CONTROLS 0x04859221U +#define MENU_LABEL_HELP_LIST 0x006af669U +#define MENU_LABEL_HELP_WHAT_IS_A_CORE 0x83fcbc44U +#define MENU_LABEL_HELP_LOADING_CONTENT 0x231d8245U +#define MENU_LABEL_HELP_SCANNING_CONTENT 0x1dec52b8U +#define MENU_LABEL_HELP_CHANGE_VIRTUAL_GAMEPAD 0x6e66ef07U +#define MENU_LABEL_HELP_AUDIO_VIDEO_TROUBLESHOOTING 0xd44d395cU +#define MENU_LABEL_TURBO 0x107434f1U +#define MENU_LABEL_VOLUME_UP 0xa66e9681U +#define MENU_LABEL_VOLUME_DOWN 0xfc64f3d4U +#define MENU_LABEL_VALUE_EXTRACTING_PLEASE_WAIT 0xec5a348bU + +#define MENU_LABEL_VIDEO_DISABLE_COMPOSITION 0x5cbb6222U +#define MENU_LABEL_VALUE_MENU_CONTROLS_PROLOG 0x72674cdfU +#define MENU_LABEL_VALUE_HELP_WHAT_IS_A_CORE 0xf3b0f77eU +#define MENU_LABEL_VALUE_HELP_LOADING_CONTENT 0x70bab027U +#define MENU_LABEL_VALUE_HELP_LIST 0x6c57426aU +#define MENU_LABEL_VALUE_HELP_CONTROLS 0xe5c9f6a2U +#define MENU_LABEL_VALUE_WHAT_IS_A_CORE_DESC 0xc832957eU +#define MENU_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD 0x27ed0204U +#define MENU_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD_DESC 0x9d0e79dbU +#define MENU_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING 0xd0e5c3ffU +#define MENU_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC 0x60031d7aU +#define MENU_LABEL_VALUE_HELP_SCANNING_CONTENT 0x74b36f11U +#define MENU_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC 0xac947056U + +/* Main menu */ +#define MENU_LABEL_LOAD_CONTENT 0x828943c3U +#define MENU_LABEL_LOAD_CONTENT_LIST 0x5745de1fU +#define MENU_LABEL_LOAD_CONTENT_HISTORY 0xfe1d79e5U +#define MENU_LABEL_ADD_CONTENT_LIST 0x046f4668U +#define MENU_LABEL_ONLINE_UPDATER 0xcac0025eU +#define MENU_LABEL_SETTINGS 0x1304dc16U +#define MENU_LABEL_SAVE_CURRENT_CONFIG 0x8840ba8bU +#define MENU_LABEL_SAVE_NEW_CONFIG 0xcce9ab72U +#define MENU_LABEL_HELP 0x7c97d2eeU +#define MENU_LABEL_QUIT_RETROARCH 0x84b0bc71U + +/* File values */ + +#define MENU_VALUE_FILE_WEBM 0x7ca00b50U +#define MENU_VALUE_FILE_F4F 0x0b886be5U +#define MENU_VALUE_FILE_F4V 0x0b886bf5U +#define MENU_VALUE_FILE_OGM 0x0b8898c8U +#define MENU_VALUE_FILE_MKV 0x0b8890d3U +#define MENU_VALUE_FILE_AVI 0x0b885f25U +#define MENU_VALUE_FILE_M4A 0x0b8889a7U +#define MENU_VALUE_FILE_3GP 0x0b87998fU +#define MENU_VALUE_FILE_MP4 0x0b889136U +#define MENU_VALUE_FILE_MP3 0x0b889135U +#define MENU_VALUE_FILE_FLAC 0x7c96d67bU +#define MENU_VALUE_FILE_OGG 0x0b8898c2U +#define MENU_VALUE_FILE_FLV 0x0b88732dU +#define MENU_VALUE_FILE_WAV 0x0b88ba13U +#define MENU_VALUE_FILE_MOV 0x0b889157U +#define MENU_VALUE_FILE_WMV 0x0b88bb9fU + +#define MENU_VALUE_FILE_JPG 0x0b8884a6U +#define MENU_VALUE_FILE_JPEG 0x7c99198bU +#define MENU_VALUE_FILE_JPG_CAPS 0x0b87f846U +#define MENU_VALUE_FILE_JPEG_CAPS 0x7c87010bU +#define MENU_VALUE_FILE_PNG 0x0b889deaU +#define MENU_VALUE_FILE_PNG_CAPS 0x0b88118aU +#define MENU_VALUE_FILE_TGA 0x0b88ae01U +#define MENU_VALUE_FILE_BMP 0x0b886244U + +#define MENU_VALUE_MD5 0x0b888fabU +#define MENU_VALUE_SHA1 0x7c9de632U +#define MENU_VALUE_CRC 0x0b88671dU +#define MENU_VALUE_MORE 0x0b877cafU +#define MENU_VALUE_HORIZONTAL_MENU 0x35761704U +#define MENU_VALUE_ON 0x005974c2U +#define MENU_VALUE_OFF 0x0b880c40U +#define MENU_VALUE_COMP 0x6a166ba5U +#define MENU_VALUE_MUSIC 0xc4a73997U +#define MENU_VALUE_IMAGE 0xbab7ebf9U +#define MENU_VALUE_MOVIE 0xc43c4bf6U +#define MENU_VALUE_CORE 0x6a167f7fU +#define MENU_VALUE_CURSOR 0x57bba8b4U +#define MENU_VALUE_FILE 0x6a496536U +#define MENU_VALUE_RDB 0x0b00f54eU +#define MENU_VALUE_DIR 0x0af95f55U +#define MENU_VALUE_NO_CORE 0x7d5472cbU +#define MENU_VALUE_GLSLP 0x0f840c87U +#define MENU_VALUE_CGP 0x0b8865bfU +#define MENU_VALUE_GLSL 0x7c976537U +#define MENU_VALUE_HLSL 0x7c97f198U +#define MENU_VALUE_HLSLP 0x0f962508U +#define MENU_VALUE_CG 0x0059776fU +#define MENU_VALUE_SLANG 0x105ce63aU +#define MENU_VALUE_SLANGP 0x1bf9adeaU const char *msg_hash_to_str(enum msg_hash_enums msg); const char *msg_hash_to_str_fr(enum msg_hash_enums msg); +int menu_hash_get_help_fr(uint32_t hash, char *s, size_t len); #ifdef HAVE_UTF8 const char *msg_hash_to_str_ru(enum msg_hash_enums msg); #endif const char *msg_hash_to_str_de(enum msg_hash_enums msg); +int menu_hash_get_help_de(uint32_t hash, char *s, size_t len); const char *msg_hash_to_str_es(enum msg_hash_enums msg); +int menu_hash_get_help_es(uint32_t hash, char *s, size_t len); const char *msg_hash_to_str_eo(enum msg_hash_enums msg); +int menu_hash_get_help_eo(uint32_t hash, char *s, size_t len); const char *msg_hash_to_str_it(enum msg_hash_enums msg); +int menu_hash_get_help_it(uint32_t hash, char *s, size_t len); const char *msg_hash_to_str_pt(enum msg_hash_enums msg); +int menu_hash_get_help_pt(uint32_t hash, char *s, size_t len); const char *msg_hash_to_str_pl(enum msg_hash_enums msg); +int menu_hash_get_help_pl(uint32_t hash, char *s, size_t len); const char *msg_hash_to_str_nl(enum msg_hash_enums msg); +int menu_hash_get_help_nl(uint32_t hash, char *s, size_t len); const char *msg_hash_to_str_us(enum msg_hash_enums msg); +int menu_hash_get_help_us(uint32_t hash, char *s, size_t len); + +int menu_hash_get_help(uint32_t hash, char *s, size_t len); uint32_t msg_hash_calculate(const char *s); diff --git a/retroarch.c b/retroarch.c index 5b2d1d6e8e..4f41bba638 100644 --- a/retroarch.c +++ b/retroarch.c @@ -76,7 +76,6 @@ #ifdef HAVE_MENU #include "menu/menu_driver.h" #include "menu/menu_content.h" -#include "menu/menu_hash.h" #endif #include "config.features.h"