diff --git a/Makefile.common b/Makefile.common index 3adbecfab37..1cf7dfb06d8 100644 --- a/Makefile.common +++ b/Makefile.common @@ -449,9 +449,6 @@ endif ifeq ($(HAVE_LANGEXTRA), 1) DEFINES += -DHAVE_LANGEXTRA DEF_FLAGS += -finput-charset=UTF-8 - - OBJ += intl/msg_hash_chs.o \ - intl/msg_hash_pt_br.o endif ifneq ($(HAVE_GETOPT_LONG), 1) diff --git a/griffin/griffin.c b/griffin/griffin.c index 7d5405090da..2b79c529c58 100644 --- a/griffin/griffin.c +++ b/griffin/griffin.c @@ -1167,11 +1167,6 @@ RETROARCH #include "../libretro-common/queues/task_queue.c" #include "../msg_hash.c" -#ifdef HAVE_LANGEXTRA -#include "../intl/msg_hash_chs.c" -#include "../intl/msg_hash_pt_br.c" -#endif - #include "../intl/msg_hash_us.c" /*============================================================ diff --git a/intl/msg_hash_chs.c b/intl/msg_hash_chs.c deleted file mode 100644 index 1ac9479535a..00000000000 --- a/intl/msg_hash_chs.c +++ /dev/null @@ -1,1826 +0,0 @@ -/* RetroArch - A frontend for libretro. - * Copyright (C) 2011-2017 - Daniel De Matteis - * - * RetroArch is free software: you can redistribute it and/or modify it under the terms - * of the GNU General Public License as published by the Free Software Found- - * ation, either version 3 of the License, or (at your option) any later version. - * - * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; - * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along with RetroArch. - * If not, see . - */ - -#include -#include -#include - -#include -#include - -#include "../msg_hash.h" -#include "../configuration.h" - -#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900) -#if (_MSC_VER >= 1700) -/* https://support.microsoft.com/en-us/kb/980263 */ -#pragma execution_character_set("utf-8") -#endif -#pragma warning(disable:4566) -#endif - -int msg_hash_get_help_chs_enum(enum msg_hash_enums msg, char *s, size_t len) -{ - settings_t *settings = config_get_ptr(); - - if (msg <= MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_END && - msg >= MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_BEGIN) - { - unsigned idx = msg - MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_BEGIN; - - switch (idx) - { - case RARCH_FAST_FORWARD_KEY: - snprintf(s, len, - "在快进和正常速度之间切换。" - ); - break; - case RARCH_FAST_FORWARD_HOLD_KEY: - snprintf(s, len, - "按住来快进。 \n" - " \n" - "放开按键来取消快进。" - ); - break; - case RARCH_SLOWMOTION_HOLD_KEY: - snprintf(s, len, - "按住并以慢动作运行。"); - break; - case RARCH_PAUSE_TOGGLE: - snprintf(s, len, - "在暂停和非暂停状态间切换。"); - break; - case RARCH_FRAMEADVANCE: - snprintf(s, len, - "在暂停时,运行一帧。"); - break; - case RARCH_SHADER_NEXT: - snprintf(s, len, - "应用文件夹中的后一个渲染器特效。"); - break; - case RARCH_SHADER_PREV: - snprintf(s, len, - "应用文件夹中的前一个渲染器特效。"); - break; - case RARCH_CHEAT_INDEX_PLUS: - case RARCH_CHEAT_INDEX_MINUS: - case RARCH_CHEAT_TOGGLE: - snprintf(s, len, - "金手指。"); - break; - case RARCH_RESET: - snprintf(s, len, - "重启游戏。"); - break; - case RARCH_SCREENSHOT: - snprintf(s, len, - "截图。"); - break; - case RARCH_MUTE: - snprintf(s, len, - "静音/取消静音。"); - break; - case RARCH_OSK: - snprintf(s, len, - "显示/隐藏屏显键盘。"); - break; - case RARCH_ENABLE_HOTKEY: - snprintf(s, len, - "启用其他热键。 \n" - " \n" - "If this hotkey is bound to either\n" - "a keyboard, joybutton or joyaxis, \n" - "all other hotkeys will be enabled only \n" - "if this one is held 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. \n" - " \n" - "Alternatively, all hotkeys for keyboard \n" - "could be disabled by the user."); - break; - case RARCH_VOLUME_UP: - snprintf(s, len, - "提高音量。"); - break; - case RARCH_VOLUME_DOWN: - snprintf(s, len, - "降低音量。"); - break; - case RARCH_OVERLAY_NEXT: - snprintf(s, len, - "切换到下一个屏幕图层。将会循环选择。"); - break; - case RARCH_DISK_EJECT_TOGGLE: - snprintf(s, len, - "切换光盘弹出状态。 \n" - " \n" - "用于多光盘游戏。 "); - break; - case RARCH_DISK_NEXT: - case RARCH_DISK_PREV: - snprintf(s, len, - "切换下一张光盘。弹出光盘后才能使用。 \n" - " \n" - "再次切换光盘弹出状态完成换盘。"); - break; - case RARCH_GRAB_MOUSE_TOGGLE: - snprintf(s, len, - "鼠标捕获开关 \n" - " \n" - "当鼠标捕获开启时,RetroArch将会隐藏鼠标指针,并 \n" - "使之控制在窗口中。这使得一些依靠鼠标相对位置的程 \n" - "序能更好运行。"); - break; - case RARCH_MENU_TOGGLE: - snprintf(s, len, "切换菜单显示。"); - break; - case RARCH_LOAD_STATE_KEY: - snprintf(s, len, - "加载即时存档。"); - break; - case RARCH_FULLSCREEN_TOGGLE_KEY: - snprintf(s, len, - "切换到全屏模式。"); - break; - case RARCH_QUIT_KEY: - snprintf(s, len, - "用于正常退出 RetroArch 的按键 \n" - " \n" - "使用任何强制手段来退出RetroArch(如发送SIGKILL) \n" - "可能导致系统无法正确存储数据。" -#ifdef __unix__ - "\n在类Unix系统上,SIGINT/SIGTERM信号能够保证正常 \n" - "关闭程序。" -#endif - ""); - break; - case RARCH_STATE_SLOT_PLUS: - case RARCH_STATE_SLOT_MINUS: - snprintf(s, len, - "即时存档栏位 \n" - "\n" - "当选择0号栏位时,即时存档将以*.state命名(或其他 \n" - "在命令行中定义的名称)。 \n" - "\n" - "当栏位不为0时,路径将会设为,其中 \n" - "是栏位的编号。"); - break; - case RARCH_SAVE_STATE_KEY: - snprintf(s, len, - "保存即时存档。"); - break; - case RARCH_REWIND: - snprintf(s, len, - "按住按钮来回溯 \n" - " \n" - "必须先启用回溯倒带功能。"); - break; - default: - if (string_is_empty(s)) - strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); - break; - } - - return 0; - } - - switch (msg) - { - case MENU_ENUM_LABEL_ACCOUNTS_RETRO_ACHIEVEMENTS: - snprintf(s, len, "你的登陆信息 \n" - "Retro成就账号。 \n" - " \n" - "访问 retroachievements.org 并注册 \n" - "以获取一个免费账号。 \n" - " \n" - "在你注册以后, 你需要 \n" - "在RetroArch输入你的 \n" - "账号以及密码。"); - break; - case MENU_ENUM_LABEL_CHEEVOS_USERNAME: - snprintf(s, len, "你的Retro成就账号的用户名。"); - break; - case MENU_ENUM_LABEL_CHEEVOS_PASSWORD: - snprintf(s, len, "你的Retro成就账号的密码。"); - break; - case MENU_ENUM_LABEL_USER_LANGUAGE: - snprintf(s, len, "变更菜单和提示消息的语言设定, \n" - " \n" - "需要重新启动才能生效。 \n" - " \n" - "注意:部分语言的翻译并不完全。 \n" - " \n" - "若一个语言尚未翻译,则会恢复英文显示。"); - break; - case MENU_ENUM_LABEL_VIDEO_FONT_PATH: - snprintf(s, len, "改变屏显文字的字体。"); - break; - case MENU_ENUM_LABEL_GAME_SPECIFIC_OPTIONS: - snprintf(s, len, "自动加载各游戏单独设定的选项。"); - break; - case MENU_ENUM_LABEL_AUTO_OVERRIDES_ENABLE: - snprintf(s, len, "自动加载覆盖配置。"); - break; - case MENU_ENUM_LABEL_AUTO_REMAPS_ENABLE: - snprintf(s, len, "自动加载自定义键位文件。"); - break; - case MENU_ENUM_LABEL_SORT_SAVESTATES_ENABLE: - snprintf(s, len, "在即时存档的文件名前面加上核心名称 \n" - "来进行排序。"); - break; - case MENU_ENUM_LABEL_SORT_SAVEFILES_ENABLE: - snprintf(s, len, "在游戏存档的文件名前面加上核心名称 \n" - "来进行排序。"); - break; - case MENU_ENUM_LABEL_RESUME_CONTENT: - snprintf(s, len, "关闭菜单,返回游戏。"); - break; - case MENU_ENUM_LABEL_RESTART_CONTENT: - snprintf(s, len, "从头开始游戏。"); - break; - case MENU_ENUM_LABEL_CLOSE_CONTENT: - snprintf(s, len, "完全关闭游戏。"); - break; - case MENU_ENUM_LABEL_UNDO_LOAD_STATE: - snprintf(s, len, "如果你不慎读错了即时存档,\n" - "使用此命令来撤销。"); - break; - case MENU_ENUM_LABEL_UNDO_SAVE_STATE: - snprintf(s, len, "如果你不慎覆盖了即时存档,\n" - "使用此命令来撤销。"); - break; - case MENU_ENUM_LABEL_TAKE_SCREENSHOT: - snprintf(s, len, "创建一份截图。\n" - " \n" - "截图文件将会存放在 \n" - "截图文件夹之中."); - break; - case MENU_ENUM_LABEL_ADD_TO_FAVORITES: - snprintf(s, len, "添加到收藏夹."); - break; - case MENU_ENUM_LABEL_RUN: - snprintf(s, len, "启动游戏."); - break; - case MENU_ENUM_LABEL_INFORMATION: - snprintf(s, len, "显示本游戏的额外 \n" - "元数据信息."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CONFIG: - snprintf(s, len, "配置文件."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_COMPRESSED_ARCHIVE: - snprintf(s, len, "压缩归档文件."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_RECORD_CONFIG: - snprintf(s, len, "记录配置文件."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CURSOR: - snprintf(s, len, "数据库指针文件。"); - break; - case MENU_ENUM_LABEL_FILE_CONFIG: - snprintf(s, len, "配置文件."); - break; - case MENU_ENUM_LABEL_SCAN_THIS_DIRECTORY: - snprintf(s, len, - "选择本项以扫描当前 \n" - "文件夹中的游戏。"); - break; - case MENU_ENUM_LABEL_USE_THIS_DIRECTORY: - snprintf(s, len, - "选择本文件夹作为指定文件夹。"); - break; - case MENU_ENUM_LABEL_CONTENT_DATABASE_DIRECTORY: - snprintf(s, len, - "游戏数据库文件夹。 \n" - " \n" - "到游戏数据库文件夹的路径。"); - break; - case MENU_ENUM_LABEL_THUMBNAILS_DIRECTORY: - snprintf(s, len, - "缩略图文件夹。 \n" - " \n" - "用以存放缩略图。"); - break; - case MENU_ENUM_LABEL_LIBRETRO_INFO_PATH: - snprintf(s, len, - "模拟器核心信息文件夹。 \n" - " \n" - "用于搜索libretro核心信息 \n" - "的文件夹。"); - break; - case MENU_ENUM_LABEL_PLAYLIST_DIRECTORY: - snprintf(s, len, - "运行列表文件夹. \n" - " \n" - "保存所有播放列表到 \n" - "此文件夹。"); - break; - case MENU_ENUM_LABEL_DUMMY_ON_CORE_SHUTDOWN: - snprintf(s, len, - "某些libretro核心可能会 \n" - "支持关机特性。 \n" - " \n" - "If this option is left disabled, \n" - "selecting the shutdown procedure \n" - "would trigger RetroArch being shut \n" - "down. \n" - " \n" - "Enabling this option will load a \n" - "dummy core instead so that we remain \n" - "inside the menu and RetroArch won't \n" - "shutdown."); - break; - case MENU_ENUM_LABEL_CHECK_FOR_MISSING_FIRMWARE: - snprintf(s, len, - "某些核心可能需要固件或 BIOS 文件。 \n" - " \n" - "如果禁用此选项,即使没有固件或 BIOS" - "也会尝试强行加载。 \n"); - break; - case MENU_ENUM_LABEL_PARENT_DIRECTORY: - snprintf(s, len, - "回到上级文件夹。"); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_SHADER_PRESET: - snprintf(s, len, - "渲染器预设文件。"); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_SHADER: - snprintf(s, len, - "渲染器文件。"); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_REMAP: - snprintf(s, len, - "控制自定义键位文件。"); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CHEAT: - snprintf(s, len, - "金手指文件。"); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_OVERLAY: - snprintf(s, len, - "图层文件。"); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_RDB: - snprintf(s, len, - "数据库文件。"); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_FONT: - snprintf(s, len, - "TrueType 字体文件。"); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_PLAIN_FILE: - snprintf(s, len, - "普通文件。"); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_MOVIE_OPEN: - snprintf(s, len, - "视频 \n" - " \n" - "选择文件并使用视频播放器打开。"); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_MUSIC_OPEN: - snprintf(s, len, - "音乐 \n" - " \n" - "选择文件并使用音乐播放器打开。"); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_IMAGE: - snprintf(s, len, - "图片文件。"); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_IMAGE_OPEN_WITH_VIEWER: - snprintf(s, len, - "图片 \n" - " \n" - "选择文件并使用图片浏览器打开。"); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION: - snprintf(s, len, - "Libretro 核心 \n" - " \n" - "选中核心将会使其关联至游戏。"); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CORE: - snprintf(s, len, - "Libretro 核心 \n" - " \n" - "选择该文件使 RetroArch 加载该核心。"); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY: - snprintf(s, len, - "文件夹 \n" - " \n" - "选择并打开该文件夹。"); - break; - case MENU_ENUM_LABEL_CACHE_DIRECTORY: - snprintf(s, len, - "缓存文件夹 \n" - " \n" - "被 RetroArch 解压的游戏内容会临时存放到这个文 \n" - "件夹。"); - break; - case MENU_ENUM_LABEL_HISTORY_LIST_ENABLE: - snprintf(s, len, - "若开启,所有在 RetroArch 中加载过的文件 \n" - "都会自动的放入最近使用历史列表中。"); - break; - case MENU_ENUM_LABEL_RGUI_BROWSER_DIRECTORY: - snprintf(s, len, - "文件浏览器文件夹 \n" - " \n" - "设置文件浏览器的初始文件夹。"); - break; - case MENU_ENUM_LABEL_INPUT_POLL_TYPE_BEHAVIOR: - snprintf(s, len, - "影响输入轮询过程在 RetroArch 中的执行方式。 \n" - " \n" - "稍早 - 输入轮询过程将在帧生成之前执行。 \n" - "正常 - 输入轮询过程将在被请求时执行。 \n" - "稍晚 - 输入轮询过程将在每一帧的首次请求时执行。 \n" - " \n" - "依据设置的不同,设置为「稍早」或「稍晚」可以获得 \n" - "较低的延迟。 \n" - "当在进行在线游戏时,不管设置的值如何,都只会启用 \n" - "正常模式进行输入轮询过程。" - ); - break; - case MENU_ENUM_LABEL_INPUT_DESCRIPTOR_HIDE_UNBOUND: - snprintf(s, len, - "隐藏不被核心使用的输入描述。"); - break; - case MENU_ENUM_LABEL_VIDEO_REFRESH_RATE: - snprintf(s, len, - "显示器的视频刷新率。 \n" - "可被用来计算一个合适的音频输入率。"); - break; - case MENU_ENUM_LABEL_VIDEO_FORCE_SRGB_DISABLE: - snprintf(s, len, - "禁用 sRGB 帧缓冲支持。\n" - "\n" - "某些在 Windows 上的 Intel OpenGL 驱动 \n" - "对 sRGB 帧缓冲支持存在问题, \n" - "需要启用此选项以禁用帧缓冲。"); - break; - case MENU_ENUM_LABEL_AUDIO_ENABLE: - snprintf(s, len, - "启用音频输出。"); - break; - case MENU_ENUM_LABEL_AUDIO_SYNC: - snprintf(s, len, - "同步音频(推荐)。"); - break; - case MENU_ENUM_LABEL_AUDIO_LATENCY: - snprintf(s, len, - "音频延迟(单位:毫秒) \n" - "如果设置太低,音频驱动可能 \n" - "并不支持,从而不会生效。"); - break; - case MENU_ENUM_LABEL_VIDEO_ALLOW_ROTATE: - snprintf(s, len, - "允许核心自行设置屏幕旋转角度,\n" - "若关闭,旋转请求将不会得到执行。\n" - "需要旋转显示器的用户请设置此选项。\n"); - break; - case MENU_ENUM_LABEL_INPUT_DESCRIPTOR_LABEL_SHOW: - snprintf(s, len, - "显示由核心设置的输入设备硬件信息,而非默认。"); - break; - case MENU_ENUM_LABEL_CONTENT_HISTORY_SIZE: - snprintf(s, len, - "在历史记录中最多保存的游戏个数。"); - break; - case MENU_ENUM_LABEL_VIDEO_WINDOWED_FULLSCREEN: - snprintf(s, len, - "使用无边框全屏替代普通全屏模式。"); - break; - case MENU_ENUM_LABEL_VIDEO_FONT_SIZE: - snprintf(s, len, - "屏显信息的字体大小。"); - break; - case MENU_ENUM_LABEL_SAVESTATE_AUTO_INDEX: - snprintf(s, len, - "每次储存即时存档时,都在新的栏位储存, \n" - "以避免覆盖原有的即时存档。 \n" - "每次运行游戏时,都会定位到最新的 \n" - "即时存档栏位。"); - break; - case MENU_ENUM_LABEL_FPS_SHOW: - snprintf(s, len, - "显示/隐藏帧数"); - break; - case MENU_ENUM_LABEL_VIDEO_FONT_ENABLE: - snprintf(s, len, - "显示/隐藏屏显信息."); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_POS_X: - case MENU_ENUM_LABEL_VIDEO_MESSAGE_POS_Y: - snprintf(s, len, - "提示消息在屏幕上显示的位置,\n" - "数值范围为0.0至1.0。"); - break; - case MENU_ENUM_LABEL_INPUT_OVERLAY_ENABLE: - snprintf(s, len, - "显示/隐藏当前按下的键位。"); - break; - case MENU_ENUM_LABEL_INPUT_OVERLAY_HIDE_IN_MENU: - snprintf(s, len, - "在进入菜单时,不显示当前按下的键位。"); - break; - case MENU_ENUM_LABEL_OVERLAY_PRESET: - snprintf(s, len, - "Path to input overlay."); - break; - case MENU_ENUM_LABEL_OVERLAY_OPACITY: - snprintf(s, len, - "图层透明度。"); - break; - case MENU_ENUM_LABEL_INPUT_BIND_TIMEOUT: - snprintf(s, len, - "绑定键位时的等待时间(单位:秒)"); - break; - case MENU_ENUM_LABEL_INPUT_BIND_HOLD: - snprintf(s, len, - "绑定键位所需要按下的时间(单位:秒)"); - break; - case MENU_ENUM_LABEL_OVERLAY_SCALE: - snprintf(s, len, - "图层放大比例。"); - break; - case MENU_ENUM_LABEL_AUDIO_OUTPUT_RATE: - snprintf(s, len, - "音频输出采样率。"); - break; - case MENU_ENUM_LABEL_VIDEO_SHARED_CONTEXT: - snprintf(s, len, - "Set to true if hardware-rendered cores \n" - "should get their private context. \n" - "Avoids having to assume hardware state changes \n" - "inbetween frames." - ); - break; - case MENU_ENUM_LABEL_CORE_LIST: - snprintf(s, len, - "加载内核. \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_ENUM_LABEL_VALUE_MENU_ENUM_CONTROLS_PROLOG: - snprintf(s, len, - "你可以使用下述的方式通过游戏控制\n" - "器或者键盘来对菜单进行控制:\n" - " \n" - ); - break; - case MENU_ENUM_LABEL_WELCOME_TO_RETROARCH: - snprintf(s, len, - "欢迎来到 RetroArch\n" - ); - break; - case MENU_ENUM_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC: - { - /* Work around C89 limitations */ - char u[501]; - size_t _len; - const char * t = - "RetroArch 依赖于一种独特的音频/视频同步形式,\n" - "需要根据显示器的刷新率对其进行校准,以获得最佳\n" - "性能。\n" - " \n" - "如果你的音频出现任何噼啪声或图像撕裂,通常意味\n" - "着你需要调整设置。下面是调整方法:\n" - " \n"; - snprintf(u, sizeof(u), /* can't inline this due to the printf arguments */ - "a) 在「%s」 ->「%s」中开启\n" - "「多线程渲染」。在这种模式下,刷新率不会发生变\n" - "化、帧率会提高,但是画面可能不那么流畅。\n" - "b) 在「%s」 -> 「%s」, 查看\n" - "「%s」。令其运行 2048 帧后,按 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)); - _len = strlcpy(s, t, len); - strlcpy(s + _len, u, len - _len); - } - break; - case MENU_ENUM_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC: - snprintf(s, len, - "若要扫描游戏内容,请访问菜单「%s」\n" - "并选择「%s」或者「%s」。\n" - "\n" - "文件将会同数据库中的条目进行对比。\n" - "若文件匹配某个条目,则它会被加入戏列表中。\n" - "\n" - "你可以无需每次都打开文件浏览器,而可以直接\n" - "通过菜单项「%s」->「%s」 来访\n" - "问这些游戏内容。\n" - " \n" - "注意:不是所有核心的游戏内容都支持扫描录入。" - , - 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_PLAYLISTS_TAB) - ); - break; - case MENU_ENUM_LABEL_VALUE_EXTRACTING_PLEASE_WAIT: - snprintf(s, len, - "欢迎使用 RetroArch\n" - "\n" - "正在解压必要文件, 请稍等。\n" - "这可能需要一点时间……\n" - ); - break; - case MENU_ENUM_LABEL_INPUT_DRIVER: - { - const char *lbl = settings ? settings->arrays.input_driver : NULL; - - if (string_is_equal(lbl, msg_hash_to_str(MENU_ENUM_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." - ); - else if (string_is_equal(lbl, msg_hash_to_str(MENU_ENUM_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*)."); - else - snprintf(s, len, - "Input driver.\n" - " \n" - "Depending on video driver, it might \n" - "force a different input driver."); - } - break; - case MENU_ENUM_LABEL_LOAD_CONTENT_LIST: - snprintf(s, len, - "加载游戏内容 \n" - "通过浏览来加载游戏内容。 \n" - " \n" - "你需要同时提供一个「核心」和游戏内容 \n" - "文件才能启动并加载游戏内容。 \n" - " \n" - "设置「文件浏览器文件夹」可以指定以哪个 \n" - "位置为文件浏览器的默认文件夹以方便加载。 \n" - "若没有设置,默认以根目录为基准。 \n" - " \n" - "文件浏览器会以上次加载的核心所支持的 \n" - "扩展名进行过滤,并使用该核心来加载 \n" - "游戏内容。" - ); - break; - case MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY: - snprintf(s, len, - "从历史记录中加载游戏内容。 \n" - " \n" - "每当你加载一个游戏时,它和所使用的核心 \n" - "将被保存到历史记录中。 \n" - " \n" - "历史记录文件和 RetroArch 设置文件在同一个 \n" - "文件夹中。如果 RetroArch 启动时没有找到 \n" - "历史记录文件,主菜单中将不会显示历史记录。" - ); - break; - case MENU_ENUM_LABEL_VIDEO_DRIVER: - { - const char *video_driver = settings->arrays.video_driver; - - snprintf(s, len, - "当前视频驱动."); - - if (string_is_equal(video_driver, "gl")) - { - snprintf(s, len, - "OpenGL视频驱动. \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)."); - } - else if (string_is_equal(video_driver, "sdl2")) - { - snprintf(s, len, - "SDL 2 视频驱动.\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."); - } - else if (string_is_equal(video_driver, "sdl1")) - { - snprintf(s, len, - "SDL 视频驱动.\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."); - } - else if (string_is_equal(video_driver, "d3d")) - { - snprintf(s, len, - "Direct3D 视频驱动. \n" - " \n" - "Performance for software-rendered cores \n" - "is dependent on your graphic card's \n" - "underlying D3D driver)."); - } - else if (string_is_equal(video_driver, "exynos")) - { - snprintf(s, len, - "Exynos-G2D 视频驱动. \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."); - } - else if (string_is_equal(video_driver, "drm")) - { - snprintf(s, len, - "Plain DRM 视频驱动. \n" - " \n" - "This is a low-level video driver using. \n" - "libdrm for hardware scaling using \n" - "GPU overlays."); - } - else if (string_is_equal(video_driver, "sunxi")) - { - snprintf(s, len, - "Sunxi-G2D 视频驱动. \n" - " \n" - "This is a low-level Sunxi video driver. \n" - "Uses the G2D block in Allwinner SoCs."); - } - } - break; - case MENU_ENUM_LABEL_AUDIO_DSP_PLUGIN: - snprintf(s, len, - "音频DSP插件.\n" - " Processes audio before it's sent to \n" - "the driver." - ); - break; - case MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER: - { - const char *lbl = settings ? settings->arrays.audio_resampler : NULL; - - if (string_is_equal(lbl, msg_hash_to_str(MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER_SINC))) - strlcpy(s, - "Windowed SINC implementation.", len); - else if (string_is_equal(lbl, msg_hash_to_str(MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER_CC))) - strlcpy(s, - "Convoluted Cosine implementation.", len); - else if (string_is_empty(s)) - strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); - } - break; -#ifdef HAVE_MICROPHONE - case MENU_ENUM_LABEL_MICROPHONE_RESAMPLER_DRIVER: - { - const char *lbl = settings ? settings->arrays.microphone_resampler : NULL; - - if (string_is_equal(lbl, msg_hash_to_str(MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER_SINC))) - strlcpy(s, - "Windowed SINC implementation.", len); - else if (string_is_equal(lbl, msg_hash_to_str(MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER_CC))) - strlcpy(s, - "Convoluted Cosine implementation.", len); - else if (string_is_empty(s)) - strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); - } - break; -#endif - case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET: - snprintf(s, len, - "载入预设渲染器. \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 - " 预设文件夹. \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_ENUM_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_ENUM_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_ENUM_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_ENUM_LABEL_VIDEO_SHADER_PRESET_PARAMETERS: - snprintf(s, len, - "Shader Preset Parameters. \n" - " \n" - "Modifies shader preset currently in menu." - ); - break; - case MENU_ENUM_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_ENUM_LABEL_CONFIGURATION_SETTINGS: - snprintf(s, len, - "Determines how configuration files \n" - "are loaded and prioritized."); - break; - case MENU_ENUM_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_ENUM_LABEL_SHOW_HIDDEN_FILES: - snprintf(s, len, "显示隐藏文件和文件夹。"); - break; - case MENU_ENUM_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_ENUM_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_ENUM_LABEL_INPUT_BIND_DEVICE_TYPE: - snprintf(s, len, - "输入设备类型. \n" - " \n" - "Picks which device type to use. This is \n" - "relevant for the libretro core itself." - ); - break; - case MENU_ENUM_LABEL_LIBRETRO_LOG_LEVEL: - snprintf(s, len, - "设置Libretro核心的日志输出级别 \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" - "调试 = 0\n" - "提示 = 1\n" - "警告 = 2\n" - "错误 = 3" - ); - break; - case MENU_ENUM_LABEL_STATE_SLOT_INCREASE: - case MENU_ENUM_LABEL_STATE_SLOT_DECREASE: - snprintf(s, len, - "即时存档栏位\n" - "\n" - "当选择0号栏位时,即时存档将以*.state命名(或其他 \n" - "在命令行中定义的名称)。 \n" - "\n" - "当栏位不为0时,路径将会设为,其中 \n" - "是栏位的编号。"); - break; - case MENU_ENUM_LABEL_SHADER_APPLY_CHANGES: - snprintf(s, len, - "应用渲染器更改。 \n" - " \n" - "当你修改渲染器设置后,执行此选项 \n" - "以应用更改。 \n" - " \n" - "渲染器可能非常耗费资源, \n" - "因此必须单独进行设置。 \n" - " \n" - "应用渲染器更改后,渲染器设置将被 \n" - "保存到 Shader 文件夹下的文件中 \n" - "(扩展名为 .cgp 或 .glslp)。 \n" - "即使退出 RetroArch,该文件也会被保留。" - ); - break; - case MENU_ENUM_LABEL_MENU_TOGGLE: - snprintf(s, len, - "切换菜单。"); - break; - case MENU_ENUM_LABEL_GRAB_MOUSE_TOGGLE: - snprintf(s, len, - "切换鼠标抓取。\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_ENUM_LABEL_DISK_NEXT: - snprintf(s, len, - "切换下一张光盘。弹出光盘后才能使用。 \n" - " \n" - "再次切换光盘弹出状态完成换盘。"); - break; - case MENU_ENUM_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_ENUM_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 需要一个PCM设备." -#endif -#ifdef HAVE_OSS - " \n" - "OSS 需要一个路径 (例如. /dev/dsp)." -#endif -#ifdef HAVE_JACK - " \n" - "JACK wants portnames (e.g. system:playback1\n" - ",system:playback_2)." -#endif -#ifdef HAVE_RSOUND - " \n" - "RSound 需要 RSound 服务器的 IP 地址。 \n" -#endif - ); - break; - case MENU_ENUM_LABEL_DISK_EJECT_TOGGLE: - snprintf(s, len, - "切换光盘弹出状态。\n" - " \n" - "用于多光盘游戏。"); - break; - case MENU_ENUM_LABEL_ENABLE_HOTKEY: - snprintf(s, len, - "启用其他热键。\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_ENUM_LABEL_REWIND_ENABLE: - snprintf(s, len, - "启用回溯倒带功能。\n" - " \n" - "这可能会严重影响性能, \n" - "所以默认设置为关闭。"); - break; - case MENU_ENUM_LABEL_LIBRETRO_DIR_PATH: - snprintf(s, len, - "核心文件夹。 \n" - " \n" - "放置 Libretro 核心的文件夹。"); - break; - case MENU_ENUM_LABEL_VIDEO_REFRESH_RATE_AUTO: - snprintf(s, len, - "自动匹配刷新率。\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_ENUM_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_ENUM_LABEL_VIDEO_SCALE: - snprintf(s, len, - "全屏分辨率。\n" - " \n" - "如果设置为 0,则使用设备默认分辨率。\n"); - break; - case MENU_ENUM_LABEL_FASTFORWARD_RATIO: - snprintf(s, len, - "快进速度。\n" - " \n" - "开启快进模式时的最大运行速度倍数。\n" - " \n" - "例如 60fps 的游戏开启 5 倍速 就是 300 fps。\n" - " \n" - "RetroArch 会尽可能保证快进时不超过该速度,\n" - "但不会特别精确。"); - break; - case MENU_ENUM_LABEL_VIDEO_MONITOR_INDEX: - snprintf(s, len, - "指定输出显示器。\n" - " \n" - "(默认 0)表示不指定显示器,\n" - "1 表示使用 1 号显示器,以此类推。"); - break; - case MENU_ENUM_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_ENUM_LABEL_VIDEO_SCALE_INTEGER: - snprintf(s, len, - "只放大整数倍。\n" - "\n" - "基础分辨率与游戏、宽高比有关。\n" - "\n" - "如果「保持宽高比」选项未开启,\n" - "不保证宽高放大倍数相同。"); - break; - case MENU_ENUM_LABEL_AUDIO_VOLUME: - snprintf(s, len, - "音量增益(分贝)。\n" - " \n" - "0 表示正常音量。\n" - "Gain can be controlled in runtime with Input\n" - "Volume Up / Input Volume Down."); - break; - case MENU_ENUM_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_ENUM_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_ENUM_LABEL_OVERLAY_NEXT: - snprintf(s, len, - "Toggles to next overlay.\n" - " \n" - "Wraps around."); - break; - case MENU_ENUM_LABEL_LOG_VERBOSITY: - snprintf(s, len, - "Enable or disable verbosity level \n" - "of frontend."); - break; - case MENU_ENUM_LABEL_VOLUME_UP: - snprintf(s, len, - "调高音量。"); - break; - case MENU_ENUM_LABEL_VOLUME_DOWN: - snprintf(s, len, - "降低音量。"); - break; - case MENU_ENUM_LABEL_VIDEO_DISABLE_COMPOSITION: - snprintf(s, len, - "Forcibly disable composition.\n" - "Only valid on Windows Vista/7 for now."); - break; - case MENU_ENUM_LABEL_PERFCNT_ENABLE: - snprintf(s, len, - "启用或关闭前端 \n" - "性能计数。"); - break; - case MENU_ENUM_LABEL_SYSTEM_DIRECTORY: - snprintf(s, len, - "系统文件夹。 \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_ENUM_LABEL_SAVESTATE_AUTO_SAVE: - case MENU_ENUM_LABEL_SAVESTATE_AUTO_LOAD: - snprintf(s, len, - "在 RetroArch 退出时 \n" - "自动保存即时存档。\n" - " \n" - "如果自动读档选项已打开,\n" - "每次运行游戏时还会读取该存档。"); - break; - case MENU_ENUM_LABEL_VIDEO_THREADED: - snprintf(s, len, - "使用独立线程来处理视频。\n" - " \n" - "虽然可能提升游戏速度,但也可能" - "增加延迟或导致图像卡顿。"); - break; - case MENU_ENUM_LABEL_VIDEO_VSYNC: - snprintf(s, len, - "视频垂直同步.\n"); - break; - case MENU_ENUM_LABEL_VIDEO_HARD_SYNC: - snprintf(s, len, - "尝试硬件同步CPU和GPU。\n" - " \n" - "可以减少潜在的性能开销。"); - break; - case MENU_ENUM_LABEL_REWIND_GRANULARITY: - snprintf(s, len, - "每次回溯的帧数\n" - " \n" - "通过一次回溯多帧来提升回溯的速度。"); - break; - case MENU_ENUM_LABEL_SCREENSHOT: - snprintf(s, len, - "截图。"); - break; - case MENU_ENUM_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 the cost of\n" - "higher risk of stuttering.\n" - " \n" - "Maximum is 15."); - break; - case MENU_ENUM_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_ENUM_LABEL_VIDEO_BLACK_FRAME_INSERTION: - snprintf(s, len, - "在每帧之间插入一帧黑屏。\n" - " \n" - "120 Hz 显示器开启此选项运行 \n" - "60 Hz 游戏可以避免重影。 \n" - " \n" - "图像刷新率仍应按照 60 Hz 显示器 \n" - "来进行设置。(除以 2) \n"); - break; - case MENU_ENUM_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_ENUM_LABEL_VIDEO_FULLSCREEN: - snprintf(s, len, "Toggles fullscreen."); - break; - case MENU_ENUM_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_ENUM_LABEL_PAUSE_NONACTIVE: - snprintf(s, len, - "切换窗口时暂停游戏。"); - break; - case MENU_ENUM_LABEL_VIDEO_GPU_SCREENSHOT: - snprintf(s, len, - "使用 GPU 输出来进行截图(如果可能的话)。"); - break; - case MENU_ENUM_LABEL_SCREENSHOT_DIRECTORY: - snprintf(s, len, - "截图文件夹 \n" - " \n" - "用于保存截图的文件夹。" - ); - break; - case MENU_ENUM_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_ENUM_LABEL_SAVEFILE_DIRECTORY: - snprintf(s, len, - "游戏存档文件夹。 \n" - " \n" - "所有游戏存档都保存在此文件夹。 \n" - "常见的游戏存档格式有 \n" - ".srm, .rt, .psrm 等\n" - " \n" - "此选项可能被特定命令行选项覆盖。"); - break; - case MENU_ENUM_LABEL_SAVESTATE_DIRECTORY: - snprintf(s, len, - "即时存档文件夹. \n" - " \n" - "所有即时存档 (.state 文件) 都 \n" - "保存在此文件夹。 \n" - " \n" - "此选项可能被特定命令行选项覆盖。"); - break; - case MENU_ENUM_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_ENUM_LABEL_DYNAMIC_WALLPAPERS_DIRECTORY: - snprintf(s, len, - "动态壁纸文件夹 \n" - " \n" - "保存用于主界面的、依据游戏内容变化的动态壁纸。"); - break; - case MENU_ENUM_LABEL_SLOWMOTION_RATIO: - snprintf(s, len, - "减速比例" - " \n" - "减速游戏时,速度将被降低的倍数。"); - break; - case MENU_ENUM_LABEL_INPUT_TURBO_PERIOD: - snprintf(s, len, - "Turbo period.\n" - " \n" - "Describes the period of which turbo-enabled\n" - "buttons toggle.\n" - " \n" - "Numbers are described in frames." - ); - break; - case MENU_ENUM_LABEL_INPUT_DUTY_CYCLE: - snprintf(s, len, - "Duty cycle.\n" - " \n" - "Describes how long the period of a turbo-enabled\n" - "should be.\n" - " \n" - "Numbers are described in frames." - ); - break; - case MENU_ENUM_LABEL_INPUT_TOUCH_ENABLE: - snprintf(s, len, "启用触摸屏支持。"); - break; - case MENU_ENUM_LABEL_INPUT_PREFER_FRONT_TOUCH: - snprintf(s, len, "使用前触摸屏,而非后触摸屏。"); - break; - case MENU_ENUM_LABEL_MOUSE_ENABLE: - snprintf(s, len, "在菜单中,启用鼠标。"); - break; - case MENU_ENUM_LABEL_POINTER_ENABLE: - snprintf(s, len, "在菜单中,启用触摸屏。"); - break; - case MENU_ENUM_LABEL_MENU_WALLPAPER: - snprintf(s, len, "菜单壁纸图片的路径。"); - break; - case MENU_ENUM_LABEL_NAVIGATION_WRAPAROUND: - snprintf(s, len, - "Wrap-around to beginning and/or end \n" - "if boundary of list is reached \n" - "horizontally and/or vertically."); - break; - case MENU_ENUM_LABEL_PAUSE_LIBRETRO: - snprintf(s, len, - "如果关闭此选项,打开菜单时 \n" - "游戏仍会后台运行。"); - break; - case MENU_ENUM_LABEL_SUSPEND_SCREENSAVER_ENABLE: - snprintf(s, len, - "Suspends the screensaver. Is a hint that \n" - "does not necessarily have to be \n" - "honored by the video driver."); - break; - case MENU_ENUM_LABEL_NETPLAY_MODE: - snprintf(s, len, - "开启:联网时为客户端模式。\n" - "关闭:联网时为服务器模式。"); - break; - case MENU_ENUM_LABEL_NETPLAY_DELAY_FRAMES: - snprintf(s, len, - "联网时延迟的帧数。 \n" - " \n" - "提升数值将改善游戏表现, \n" - "但延迟也会增加。"); - break; - case MENU_ENUM_LABEL_NETPLAY_CHECK_FRAMES: - snprintf(s, len, - "The frequency in frames with which netplay \n" - "will verify that the host and client are in \n" - "sync. \n" - " \n" - "With most cores, this value will have no \n" - "visible effect and can be ignored. With \n" - "nondeterminstic cores, this value determines \n" - "how often the netplay peers will be brought \n" - "into sync. With buggy cores, setting this \n" - "to any non-zero value will cause severe \n" - "performance issues. Set to zero to perform \n" - "no checks. This value is only used on the \n" - "netplay host. \n"); - break; - case MENU_ENUM_LABEL_VIDEO_MAX_SWAPCHAIN_IMAGES: - snprintf(s, len, - "Maximum amount of swapchain images. This \n" - "can tell the video driver to use a specific \n" - "video buffering mode. \n" - " \n" - "Single buffering - 1\n" - "Double buffering - 2\n" - "Triple buffering - 3\n" - " \n" - "Setting the right buffering mode can have \n" - "a big impact on latency."); - break; - case MENU_ENUM_LABEL_VIDEO_SMOOTH: - snprintf(s, len, - "用双线性过滤使图像平滑。 \n" - "如果你使用了渲染器,请关闭它。"); - break; - case MENU_ENUM_LABEL_VIDEO_CTX_SCALING: - snprintf(s, len, -#ifdef HAVE_ODROIDGO2 - "RGA scaling and bicubic filtering. May break widgets." -#else - "Hardware context scaling (if available)." -#endif - ); - break; - case MENU_ENUM_LABEL_TIMEDATE_ENABLE: - snprintf(s, len, - "在菜单中显示当前日期和时间。"); - break; - case MENU_ENUM_LABEL_CORE_ENABLE: - snprintf(s, len, - "在菜单中显示当前运行的核心名称。"); - break; - case MENU_ENUM_LABEL_NETPLAY_ENABLE_HOST: - snprintf(s, len, - "启用联机游戏(服务器模式)。"); - break; - case MENU_ENUM_LABEL_NETPLAY_ENABLE_CLIENT: - snprintf(s, len, - "启用联机游戏(客户端模式)。"); - break; - case MENU_ENUM_LABEL_NETPLAY_DISCONNECT: - snprintf(s, len, - "断开当前网络连接。"); - break; - case MENU_ENUM_LABEL_NETPLAY_SETTINGS: - snprintf(s, len, - "联机游戏设置。"); - break; - case MENU_ENUM_LABEL_NETPLAY_LAN_SCAN_SETTINGS: - snprintf(s, len, - "在局域网中搜索并加入联机游戏服务器。"); - break; - case MENU_ENUM_LABEL_DYNAMIC_WALLPAPER: - snprintf(s, len, - "在不同的环境下加载不同的壁纸。"); - break; - case MENU_ENUM_LABEL_CORE_UPDATER_BUILDBOT_URL: - snprintf(s, len, - "URL to core updater directory on the \n" - "Libretro buildbot."); - break; - case MENU_ENUM_LABEL_BUILDBOT_ASSETS_URL: - snprintf(s, len, - "URL to assets updater directory on the \n" - "Libretro buildbot."); - break; - case MENU_ENUM_LABEL_INPUT_REMAP_BINDS_ENABLE: - snprintf(s, len, - "if enabled, overrides the input binds \n" - "with the remapped binds set for the \n" - "current core."); - break; - case MENU_ENUM_LABEL_OVERLAY_DIRECTORY: - snprintf(s, len, - "Overlay Directory. \n" - " \n" - "Defines a directory where overlays are \n" - "kept for easy access."); - break; - case MENU_ENUM_LABEL_INPUT_MAX_USERS: - snprintf(s, len, - "RetroArch 支持的最大用户数量。"); - break; - case MENU_ENUM_LABEL_CORE_UPDATER_AUTO_EXTRACT_ARCHIVE: - snprintf(s, len, - "下载后自动解压。"); - break; - case MENU_ENUM_LABEL_NAVIGATION_BROWSER_FILTER_SUPPORTED_EXTENSIONS_ENABLE: - snprintf(s, len, - "Filter files being shown by \n" - "supported extensions."); - break; - case MENU_ENUM_LABEL_NETPLAY_NICKNAME: - snprintf(s, len, - "你的 RetroArch 用户名,用于联机游戏。"); - break; - case MENU_ENUM_LABEL_NETPLAY_TCP_UDP_PORT: - snprintf(s, len, - "服务器的端口。 \n" - "TCP 或 UDP 端口均可。"); - break; - case MENU_ENUM_LABEL_NETPLAY_SPECTATOR_MODE_ENABLE: - snprintf(s, len, - "启用或禁用网络对战的观战模式。"); - break; - case MENU_ENUM_LABEL_NETPLAY_IP_ADDRESS: - snprintf(s, len, - "服务器的地址。"); - break; - case MENU_ENUM_LABEL_STDIN_CMD_ENABLE: - snprintf(s, len, - "启用标准命令行输入。"); - break; - case MENU_ENUM_LABEL_UI_COMPANION_START_ON_BOOT: - snprintf(s, len, - "Start User Interface companion driver \n" - "on boot (if available)."); - break; - case MENU_ENUM_LABEL_MENU_DRIVER: - snprintf(s, len, "Menu driver to use."); - break; - case MENU_ENUM_LABEL_INPUT_MENU_ENUM_TOGGLE_GAMEPAD_COMBO: - snprintf(s, len, - "切换菜单的按键。 \n" - " \n" - "0 - 无 \n" - "1 - 同时按下 L + R + Y + D-Pad \n" - "2 - 同时按下 L3 + R3 \n" - "3 - 同时按下 Start + Select "); - break; - case MENU_ENUM_LABEL_INPUT_ALL_USERS_CONTROL_MENU: - snprintf(s, len, "允许任何玩家打开菜单。"); - break; - case MENU_ENUM_LABEL_INPUT_AUTODETECT_ENABLE: - snprintf(s, len, - "启用自动配置按键。\n" - " \n" - "RetroArch 将尝试自动配置手柄按键, \n" - "和即插即用模式。"); - break; - case MENU_ENUM_LABEL_CAMERA_ALLOW: - snprintf(s, len, - "允许或禁止核心调用摄像头。"); - break; - case MENU_ENUM_LABEL_LOCATION_ALLOW: - snprintf(s, len, - "允许或禁止核心调用定位系统(GPS)。"); - break; - case MENU_ENUM_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_ENUM_LABEL_OSK_ENABLE: - snprintf(s, len, - "启用或禁用屏幕软键盘。"); - break; - case MENU_ENUM_LABEL_AUDIO_MUTE: - snprintf(s, len, - "静音或恢复声音。"); - break; - case MENU_ENUM_LABEL_REWIND: - snprintf(s, len, - "按住按钮来回溯 \n" - " \n" - "必须先启用回溯倒带功能。"); - break; - case MENU_ENUM_LABEL_EXIT_EMULATOR: - snprintf(s, len, - "正常退出 RetroArch。" -#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_ENUM_LABEL_LOAD_STATE: - snprintf(s, len, - "读取即时存档。"); - break; - case MENU_ENUM_LABEL_SAVE_STATE: - snprintf(s, len, - "保存即时存档。"); - break; - case MENU_ENUM_LABEL_CHEAT_INDEX_PLUS: - snprintf(s, len, - "下一个金手指。"); - break; - case MENU_ENUM_LABEL_CHEAT_INDEX_MINUS: - snprintf(s, len, - "前一个金手指。"); - break; - case MENU_ENUM_LABEL_SHADER_PREV: - snprintf(s, len, - "应用文件夹中的前一个渲染器特效。"); - break; - case MENU_ENUM_LABEL_SHADER_NEXT: - snprintf(s, len, - "应用文件夹中的后一个渲染器特效。"); - break; - case MENU_ENUM_LABEL_RESET: - snprintf(s, len, - "重启游戏。"); - break; - case MENU_ENUM_LABEL_PAUSE_TOGGLE: - snprintf(s, len, - "在暂停和非暂停状态间切换。"); - break; - case MENU_ENUM_LABEL_CHEAT_TOGGLE: - snprintf(s, len, - "切换金手指启用状态。"); - break; - case MENU_ENUM_LABEL_HOLD_FAST_FORWARD: - snprintf(s, len, - "按下按键快进,松开按键恢复正常。"); - break; - case MENU_ENUM_LABEL_SLOWMOTION_HOLD: - snprintf(s, len, - "按下按键减速,松开按键恢复正常。"); - break; - case MENU_ENUM_LABEL_FRAME_ADVANCE: - snprintf(s, len, - "游戏暂停时,运行一帧。"); - break; - case MENU_ENUM_LABEL_L_X_PLUS: - case MENU_ENUM_LABEL_L_X_MINUS: - case MENU_ENUM_LABEL_L_Y_PLUS: - case MENU_ENUM_LABEL_L_Y_MINUS: - case MENU_ENUM_LABEL_R_X_PLUS: - case MENU_ENUM_LABEL_R_X_MINUS: - case MENU_ENUM_LABEL_R_Y_PLUS: - case MENU_ENUM_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_ENUM_LABEL_VALUE_WHAT_IS_A_CORE_DESC: - snprintf(s, len, - "RetroArch 本身并不能做什么事情。 \n" - " \n" - "如果想在上面干点什么,你需要向它加载 \n" - "一个程序。\n" - " \n" - "我们把这样的程序叫做「Libretro 核心」, \n" - "简称「核心」。 \n" - " \n" - "你可以从「加载核心」菜单中选择一个核心。 \n" - " \n" -#ifdef HAVE_NETWORKING - "你可以通过以下几种方法来获取核心: \n" - "一、通过访问菜单项「%s」 \n" - " -> 「%s」来下载;\n" - " \n" - "二、手动将其移入核心文件夹中,访问文件\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 - "你可以通过手动将核心移入文件夹中来添加它们, \n" - "访问文件夹设置找到你的「%s」。", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) -#endif - ); - break; - case MENU_ENUM_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD_DESC: - snprintf(s, len, - "你可以通过「%s」->「%s」更改虚拟按键。\n" - " \n" - "从那里你可以改变虚拟按键的样式、大小和不透\n" - "明度。\n" - " \n" - "注意:默认情况下,在菜单中虚拟按键是隐藏的。\n" - "如果您想在菜单中显示,可以将「%s」\n" - "设置为 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 (string_is_empty(s)) - strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); - return -1; - } - - return 0; -} - -const char *msg_hash_to_str_chs(enum msg_hash_enums msg) -{ - switch (msg) - { -#include "msg_hash_chs.h" - - default: -#if 0 - RARCH_LOG("Unimplemented: [%d]\n", msg); -#endif - break; - } - - return "null"; -} - -const char *msg_hash_get_wideglyph_str_chs(void) -{ - return "菜"; -} diff --git a/intl/msg_hash_pt_br.c b/intl/msg_hash_pt_br.c deleted file mode 100644 index 2c8a733e516..00000000000 --- a/intl/msg_hash_pt_br.c +++ /dev/null @@ -1,2393 +0,0 @@ -/* RetroArch - A frontend for libretro. - * Copyright (C) 2011-2017 - Daniel De Matteis - * Copyright (C) 2016-2019 - Brad Parker - * - * 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 - -#include "../msg_hash.h" -#include "../verbosity.h" - -#ifdef RARCH_INTERNAL -#include "../configuration.h" - -#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900) -#if (_MSC_VER >= 1700) -/* https://support.microsoft.com/en-us/kb/980263 */ -#pragma execution_character_set("utf-8") -#endif -#pragma warning(disable:4566) -#endif - -int msg_hash_get_help_pt_br_enum(enum msg_hash_enums msg, char *s, size_t len) -{ - settings_t *settings = config_get_ptr(); - - if (msg <= MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_END && - msg >= MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_BEGIN) - { - unsigned idx = msg - MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_BEGIN; - - switch (idx) - { - case RARCH_FAST_FORWARD_KEY: - snprintf(s, len, - "Alternar entre avanço rápido e \n" - "velocidade normal." - ); - break; - case RARCH_FAST_FORWARD_HOLD_KEY: - snprintf(s, len, - "Manter pressionado para avanço rápido. \n" - " \n" - "Soltar o botão desativa o avanço rápido." - ); - break; - case RARCH_SLOWMOTION_KEY: - snprintf(s, len, - "Alternar câmera lenta."); - break; - case RARCH_SLOWMOTION_HOLD_KEY: - snprintf(s, len, - "Manter pressionado para câmera lenta."); - break; - case RARCH_PAUSE_TOGGLE: - snprintf(s, len, - "Alternar estado pausado e não-pausado."); - break; - case RARCH_FRAMEADVANCE: - snprintf(s, len, - "Avanço de quadro do conteúdo pausado."); - break; - case RARCH_SHADER_NEXT: - snprintf(s, len, - "Aplicar o próximo shader do diretório."); - break; - case RARCH_SHADER_PREV: - snprintf(s, len, - "Aplicar o shader anterior do diretório."); - break; - case RARCH_CHEAT_INDEX_PLUS: - case RARCH_CHEAT_INDEX_MINUS: - case RARCH_CHEAT_TOGGLE: - snprintf(s, len, - "Trapaças."); - break; - case RARCH_RESET: - snprintf(s, len, - "Reiniciar o conteúdo."); - break; - case RARCH_SCREENSHOT: - snprintf(s, len, - "Capturar tela."); - break; - case RARCH_MUTE: - snprintf(s, len, - "Habilitar/desabilitar áudio."); - break; - case RARCH_OSK: - snprintf(s, len, - "Alternar o teclado virtual."); - break; - case RARCH_FPS_TOGGLE: - snprintf(s, len, - "Alternar contador de quadros por segundo."); - break; - case RARCH_SEND_DEBUG_INFO: - snprintf(s, len, - "Envia informações de diagnóstico sobre o seu dispositivo e a configuração do RetroArch aos nossos servidores para análise."); - break; - case RARCH_NETPLAY_HOST_TOGGLE: - snprintf(s, len, - "Ativar ou desativar a hospedagem de jogo em rede."); - break; - case RARCH_NETPLAY_GAME_WATCH: - snprintf(s, len, - "Alternar modo jogador ou espectador do jogo em rede."); - break; - case RARCH_ENABLE_HOTKEY: - snprintf(s, len, - "Habilitar outras teclas de atalho. \n" - " \n" - "Se essa tecla de atalho estiver vinculada \n" - "ao teclado ou botão / eixo de joypad, todas \n" - "as outras teclas de atalho serão desabilitadas \n" - "a menos que essa tecla de atalho também esteja \n" - "pressionada ao mesmo tempo. \n" - " \n" - "Como alternativa, todas as teclas de atalho \n" - "para teclado podem ser desativadas pelo usuário."); - break; - case RARCH_VOLUME_UP: - snprintf(s, len, - "Aumentar o volume do áudio."); - break; - case RARCH_VOLUME_DOWN: - snprintf(s, len, - "Diminuir o volume do áudio."); - break; - case RARCH_OVERLAY_NEXT: - snprintf(s, len, - "Mudar para a próxima sobreposição."); - break; - case RARCH_DISK_EJECT_TOGGLE: - snprintf(s, len, - "Alternar ejeção de disco. \n" - " \n" - "Usado para conteúdo em vários discos. "); - break; - case RARCH_DISK_NEXT: - case RARCH_DISK_PREV: - snprintf(s, len, - "Alternar pelas imagens de disco. Utilizado. \n" - "após a ejeção. \n" - " \n" - "Concluído após alternar novamente a ejeção."); - break; - case RARCH_GRAB_MOUSE_TOGGLE: - snprintf(s, len, - "Alternar captura de Mouse. \n" - " \n" - "Quando o Mouse é capturado, o RetroArch oculta \n" - "o cursor do mouse, e mantém o mouse dentro \n" - "da janela para permitir que a entrada de Mouse \n" - "relativa funcione melhor."); - break; - case RARCH_GAME_FOCUS_TOGGLE: - snprintf(s, len, - "Alternar o foco do jogo.\n" - " \n" - "Quando um jogo tem foco, o RetroArch irá \n" - "desabilitar as teclas de atalho e manter \n" - "o cursor do mouse dentro da janela."); - break; - case RARCH_MENU_TOGGLE: - snprintf(s, len, "Mostrar ou ocultar o menu."); - break; - case RARCH_LOAD_STATE_KEY: - snprintf(s, len, - "Carregar jogo salvo."); - break; - case RARCH_FULLSCREEN_TOGGLE_KEY: - snprintf(s, len, - "Alternar tela cheia."); - break; - case RARCH_QUIT_KEY: - snprintf(s, len, - "Tecla para sair do RetroArch de modo limpo. \n" - " \n" - "Encerrá-lo de forma brusca (SIGKILL, etc.) irá \n" - "terminar o RetroArch sem salvar RAM, etc." -#ifdef __unix__ - "\nEm sistemas do tipo Unix, SIGINT/SIGTERM \n" - "permitem uma desinicialização limpa." -#endif - ""); - break; - case RARCH_STATE_SLOT_PLUS: - case RARCH_STATE_SLOT_MINUS: - snprintf(s, len, - "Compartimentos de jogo salvo.\n" - " \n" - "Com o compartimento é definido em 0, o nome do \n" - "jogo salvo é *.state \n" - "(ou a definição da linha de comando). \n" - " \n" - "Quando o compartimento não for 0, o caminho será \n" - "(caminho)(n), onde (n) é o número do compartimento."); - break; - case RARCH_SAVE_STATE_KEY: - snprintf(s, len, - "Salvar jogo."); - break; - case RARCH_REWIND: - snprintf(s, len, - "Manter o botão pressionado para \n" - "Rebobinar. \n" - " \n" - "Rebobinar precisa estar habilitado."); - break; - default: - if (string_is_empty(s)) - strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); - break; - } - - return 0; - } - - switch (msg) - { - case MENU_ENUM_LABEL_ACCOUNTS_RETRO_ACHIEVEMENTS: - snprintf(s, len, "Detalhes de acesso para \n" - "sua conta RetroAchievements. \n" - " \n" - "Visite retroachievements.org e inscreva-se \n" - "em uma conta gratuita. \n" - " \n" - "Após o registro, você precisa \n" - "cadastrar o nome de usuário e a senha \n" - "no RetroArch."); - break; - case MENU_ENUM_LABEL_CHEEVOS_USERNAME: - snprintf(s, len, "Nome de usuário da conta RetroAchievements."); - break; - case MENU_ENUM_LABEL_CHEEVOS_PASSWORD: - snprintf(s, len, "Senha da conta RetroAchievements."); - break; - case MENU_ENUM_LABEL_USER_LANGUAGE: - snprintf(s, len, "Altera o idioma do menu e todas as mensagens \n" - "na tela de acordo com o idioma selecionado \n" - "aqui. \n" - " \n" - "Requer a reinicialização para que as \n" - "alterações entrem em vigor. \n" - " \n" - "NOTA: nem todos os idiomas podem estar atualmente \n" - "implementados. \n" - " \n" - "No caso de um idioma não estar implementado, \n" - "retorna para Inglês."); - break; - case MENU_ENUM_LABEL_VIDEO_FONT_PATH: - snprintf(s, len, "Mudar a fonte que é utilizada \n" - "para o texto da Exibição na Tela."); - break; - case MENU_ENUM_LABEL_GAME_SPECIFIC_OPTIONS: - snprintf(s, len, "Autocarregar opções de núcleo específicas do conteúdo."); - break; - case MENU_ENUM_LABEL_AUTO_OVERRIDES_ENABLE: - snprintf(s, len, "Autocarregar configurações de personalização."); - break; - case MENU_ENUM_LABEL_AUTO_REMAPS_ENABLE: - snprintf(s, len, "Autocarregar arquivos de remapeamento de entrada."); - break; - case MENU_ENUM_LABEL_SORT_SAVESTATES_ENABLE: - snprintf(s, len, "Ordenar jogos salvos em pastas \n" - "com o nome do núcleo Libretro utilizado."); - break; - case MENU_ENUM_LABEL_SORT_SAVEFILES_ENABLE: - snprintf(s, len, "Ordenar dados da memória do jogo em pastas \n" - "com o nome do núcleo Libretro utilizado."); - break; - case MENU_ENUM_LABEL_RESUME_CONTENT: - snprintf(s, len, "Sair do menu e retornar \n" - "ao conteúdo."); - break; - case MENU_ENUM_LABEL_RESTART_CONTENT: - snprintf(s, len, "Reiniciar o conteúdo do começo."); - break; - case MENU_ENUM_LABEL_CLOSE_CONTENT: - snprintf(s, len, "Fechar e descarregar o conteúdo \n" - "da memória."); - break; - case MENU_ENUM_LABEL_UNDO_LOAD_STATE: - snprintf(s, len, "Se um jogo salvo foi carregado, o \n" - "conteúdo irá retornar ao estado anterior \n" - "ao carregamento."); - break; - case MENU_ENUM_LABEL_UNDO_SAVE_STATE: - snprintf(s, len, "Se um jogo salvo for sobrescrito, ele irá \n" - "retornar ao jogo salvo anterior."); - break; - case MENU_ENUM_LABEL_TAKE_SCREENSHOT: - snprintf(s, len, "Capturar a tela. \n" - " \n" - "As imagens capturadas serão armazenadas dentro \n" - "do diretório de captura de telas."); - break; - case MENU_ENUM_LABEL_ADD_TO_FAVORITES: - snprintf(s, len, "Adicionar o item aos seus favoritos."); - break; - case MENU_ENUM_LABEL_RUN: - snprintf(s, len, "Iniciar o conteúdo."); - break; - case MENU_ENUM_LABEL_INFORMATION: - snprintf(s, len, "Exibir informação adicional \n" - "de metadados sobre o conteúdo."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CONFIG: - snprintf(s, len, "Arquivo de configuração."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_COMPRESSED_ARCHIVE: - snprintf(s, len, "Arquivo comprimido."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_RECORD_CONFIG: - snprintf(s, len, "Arquivo de configuração de gravação."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CURSOR: - snprintf(s, len, "Arquivo de cursor da base de dados."); - break; - case MENU_ENUM_LABEL_FILE_CONFIG: - snprintf(s, len, "Arquivo de configuração."); - break; - case MENU_ENUM_LABEL_SCAN_THIS_DIRECTORY: - snprintf(s, len, - "Selecione para analisar o diretório \n" - "atual por conteúdo."); - break; - case MENU_ENUM_LABEL_USE_THIS_DIRECTORY: - snprintf(s, len, - "Selecione para definir esse como o diretório."); - break; - case MENU_ENUM_LABEL_CONTENT_DATABASE_DIRECTORY: - snprintf(s, len, - "Diretório da base de dados de conteúdo. \n" - " \n" - "Caminho para o diretório \n" - "da base de dados de conteúdo."); - break; - case MENU_ENUM_LABEL_THUMBNAILS_DIRECTORY: - snprintf(s, len, - "Diretório de miniaturas. \n" - " \n" - "Para armazenar arquivos de miniaturas."); - break; - case MENU_ENUM_LABEL_LIBRETRO_INFO_PATH: - snprintf(s, len, - "Diretório de informações de núcleos. \n" - " \n" - "Um diretório por onde procurar \n" - "informação sobre os núcleos Libretro."); - break; - case MENU_ENUM_LABEL_PLAYLIST_DIRECTORY: - snprintf(s, len, - "Diretório de lista de reprodução. \n" - " \n" - "Salva todos os arquivos de \n" - "lista de reprodução neste diretório."); - break; - case MENU_ENUM_LABEL_DUMMY_ON_CORE_SHUTDOWN: - snprintf(s, len, - "Alguns núcleos podem ter \n" - "um recurso de desligamento. \n" - " \n" - "Se esta opção for deixada desabilitada, \n" - "selecionar o procedimento de desligamento \n" - "irá fazer com que o RetroArch seja encerrado. \n" - " \n" - "Habilitar esta opção irá carregar um \n" - "núcleo modelo, permanecendo dentro do menu \n" - "e o RetroArch não irá ser encerrado."); - break; - case MENU_ENUM_LABEL_CHECK_FOR_MISSING_FIRMWARE: - snprintf(s, len, - "Alguns núcleos podem precisar de \n" - "arquivos de firmware ou BIOS. \n" - " \n" - "Se esta opção estiver desabilitada, \n" - "será feito uma tentativa de carregar \n" - "mesmo que o firmware esteja faltando. \n"); - break; - case MENU_ENUM_LABEL_PARENT_DIRECTORY: - snprintf(s, len, - "Retornar ao diretório superior."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_OPEN_UWP_PERMISSIONS: - snprintf(s, len, - "Abra as configurações de permissão do Windows \n" - "para ativar o recurso broadFileSystemAccess."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_OPEN_PICKER: - snprintf(s, len, - "Abra o seletor de arquivos do sistema para \n" - "acessar os diretórios adicionais."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_SHADER_PRESET: - snprintf(s, len, - "Arquivo de predefinição de shader."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_SHADER: - snprintf(s, len, - "Arquivo de shader."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_REMAP: - snprintf(s, len, - "Arquivo de remapeamento de controles."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CHEAT: - snprintf(s, len, - "Arquivo de trapaça."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_OVERLAY: - snprintf(s, len, - "Arquivo de sobreposição."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_RDB: - snprintf(s, len, - "Arquivo de base de dados."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_FONT: - snprintf(s, len, - "Arquivo de fonte TrueType."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_PLAIN_FILE: - snprintf(s, len, - "Arquivo comum."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_MOVIE_OPEN: - snprintf(s, len, - "Vídeo. \n" - " \n" - "Selecione para abrir este arquivo \n" - "com o reprodutor de vídeo"); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_MUSIC_OPEN: - snprintf(s, len, - "Música. \n" - " \n" - "Selecione para abrir este arquivo \n" - "com o reprodutor de música."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_IMAGE: - snprintf(s, len, - "Arquivo de imagem."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_IMAGE_OPEN_WITH_VIEWER: - snprintf(s, len, - "Imagem. \n" - " \n" - "Selecione para abrir este arquivo \n" - "com o visualizador de imagens."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION: - snprintf(s, len, - "Núcleo Libretro. \n" - " \n" - "Selecionar esta opção associa este \n" - "núcleo com o jogo."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CORE: - snprintf(s, len, - "Núcleo Libretro. \n" - " \n" - "Selecione este arquivo para que o \n" - "RetroArch carregue este núcleo."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY: - snprintf(s, len, - "Diretório. \n" - " \n" - "Selecione para abrir esse diretório."); - break; - case MENU_ENUM_LABEL_CACHE_DIRECTORY: - snprintf(s, len, - "Diretório de cache. \n" - " \n" - "Conteúdo descomprimido pelo RetroArch será \n" - "temporariamente extraído para este diretório."); - break; - case MENU_ENUM_LABEL_HISTORY_LIST_ENABLE: - snprintf(s, len, - "Se habilitado, todo o conteúdo carregado \n" - "no RetroArch será automaticamente \n" - "adicionado a lista de histórico recente."); - break; - case MENU_ENUM_LABEL_RGUI_BROWSER_DIRECTORY: - snprintf(s, len, - "Diretório do navegador de arquivos. \n" - " \n" - "Define o diretório inicial para o \n" - "navegador de arquivos do menu. \n"); - break; - case MENU_ENUM_LABEL_INPUT_POLL_TYPE_BEHAVIOR: - snprintf(s, len, - "Influencia como a chamada seletiva da \n" - "entrada é feita dentro do RetroArch. \n" - " \n" - "Mais cedo - A chamada da entrada é realizada \n" - "antes do quadro ser processado. \n" - "Normal - A chamada da entrada é realizada \n" - "quando a chamada é requisitada. \n" - "Mais tarde - A chamada seletiva é realizada \n" - "no primeiro estado de entrada requisitado \n" - "pelo quadro. \n" - " \n" - "Definir como 'Mais cedo' ou 'Mais tarde' pode resultar \n" - "em menos latência, \n" - "dependendo da sua configuração.\n\n" - "Será ignorado no jogo em rede." - ); - break; - case MENU_ENUM_LABEL_INPUT_DESCRIPTOR_HIDE_UNBOUND: - snprintf(s, len, - "Ocultar descritores de entrada que não foram \n" - "definidos pelo núcleo."); - break; - case MENU_ENUM_LABEL_VIDEO_REFRESH_RATE: - snprintf(s, len, - "Taxa de atualização de vídeo do seu monitor. \n" - "Utilizado para calcular uma taxa de \n" - "entrada de áudio adequada."); - break; - case MENU_ENUM_LABEL_VIDEO_FORCE_SRGB_DISABLE: - snprintf(s, len, - "Desabilitar a força o suporte sRGB FBO. \n" - "Alguns drivers Intel OpenGL no Windows \n" - "possuem problemas de vídeo com o recurso \n" - "sRGB FBO se estiver habilitado."); - break; - case MENU_ENUM_LABEL_AUDIO_ENABLE: - snprintf(s, len, - "Habilitar saída de áudio."); - break; - case MENU_ENUM_LABEL_AUDIO_SYNC: - snprintf(s, len, - "Sincronizar áudio (recomendado)."); - break; - case MENU_ENUM_LABEL_AUDIO_LATENCY: - snprintf(s, len, - "Latência de áudio desejada, em milissegundos. \n" - "Pode não ser honrado se o driver de áudio \n" - "não puder prover a latência desejada."); - break; - case MENU_ENUM_LABEL_VIDEO_ALLOW_ROTATE: - snprintf(s, len, - "Permitir que os núcleos definam a rotação. \n" - "Se for falso, pedidos de rotação são honrados, \n" - "porém ignorados. \n" - "Útil para configurações onde se rotaciona \n" - "manualmente a tela."); - break; - case MENU_ENUM_LABEL_INPUT_DESCRIPTOR_LABEL_SHOW: - snprintf(s, len, - "Exibir os descritores de entrada definidos \n" - "pelo núcleo em vez dos padrões."); - break; - case MENU_ENUM_LABEL_CONTENT_HISTORY_SIZE: - snprintf(s, len, - "Número de itens para manter na \n" - "lista de reprodução recente."); - break; - case MENU_ENUM_LABEL_VIDEO_WINDOWED_FULLSCREEN: - snprintf(s, len, - "Utilizar ou não o modo janela quando \n" - "em tela cheia."); - break; - case MENU_ENUM_LABEL_VIDEO_FONT_SIZE: - snprintf(s, len, - "Tamanho da fonte para mensagens na tela."); - break; - case MENU_ENUM_LABEL_SAVESTATE_AUTO_INDEX: - snprintf(s, len, - "Automaticamente aumenta o índice de box \n" - "a cada salvamento, gerando vários arquivos \n" - "de jogo salvo. \n" - "Quando o conteúdo for carregado, o box \n" - "de jogo salvo será o do valor existente \n" - "mais alto (último jogo salvo)."); - break; - case MENU_ENUM_LABEL_FPS_SHOW: - snprintf(s, len, - "Habilitar a exibição de quadros \n" - "por segundos."); - break; - case MENU_ENUM_LABEL_MEMORY_SHOW: - snprintf(s, len, - "Inclui a exibição da memória atual \n" - "uso/total com FPS/Quadros."); - break; - case MENU_ENUM_LABEL_VIDEO_FONT_ENABLE: - snprintf(s, len, - "Exibir ou ocultar mensagens na tela."); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_POS_X: - case MENU_ENUM_LABEL_VIDEO_MESSAGE_POS_Y: - snprintf(s, len, - "Deslocamento de onde as mensagens \n" - "serão colocadas na tela. Os valores aceitos \n" - "são na faixa de [0.0, 1.0]."); - break; - case MENU_ENUM_LABEL_INPUT_OVERLAY_ENABLE: - snprintf(s, len, - "Habilitar ou desabilitar \n" - "a sobreposição atual."); - break; - case MENU_ENUM_LABEL_INPUT_OVERLAY_HIDE_IN_MENU: - snprintf(s, len, - "Ocultar a exibição de sobreposição \n" - "dentro do menu."); - break; - case MENU_ENUM_LABEL_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS: - snprintf(s, len, - "Exibir comandos do teclado/controle na \n" - "sobreposição."); - break; - case MENU_ENUM_LABEL_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS_PORT: - snprintf(s, len, - "Seleciona a porta de escuta dos comandos do controle \n" - "a serem exibidos na sobreposição."); - break; - case MENU_ENUM_LABEL_OVERLAY_PRESET: - snprintf(s, len, - "Caminho para predefinição de sobreposição."); - break; - case MENU_ENUM_LABEL_OVERLAY_OPACITY: - snprintf(s, len, - "Opacidade da sobreposição."); - break; - case MENU_ENUM_LABEL_VIDEO_LAYOUT_ENABLE: - snprintf(s, len, - "Ativar ou desativar o esquema de vídeo atual."); - break; - case MENU_ENUM_LABEL_VIDEO_LAYOUT_PATH: - snprintf(s, len, - "Caminho para o esquema de vídeo."); - break; - case MENU_ENUM_LABEL_VIDEO_LAYOUT_SELECTED_VIEW: - snprintf(s, len, - "Os esquemas podem conter várias visualizações. \n" - "Selecione uma visualização."); - break; - case MENU_ENUM_LABEL_INPUT_BIND_TIMEOUT: - snprintf(s, len, - "Tempo limite para vínculo de entrada \n" - "(em segundos). \n" - "Quantos segundos aguardar até prosseguir \n" - "para o próximo vínculo."); - break; - case MENU_ENUM_LABEL_INPUT_BIND_HOLD: - snprintf(s, len, - "Tempo de pressionamento do vínculo de entrada (em segundos). \n" - "Quantidade de segundos para manter uma entrada para vinculá-la."); - break; - case MENU_ENUM_LABEL_OVERLAY_SCALE: - snprintf(s, len, - "Escala da sobreposição."); - break; - case MENU_ENUM_LABEL_AUDIO_OUTPUT_RATE: - snprintf(s, len, - "Taxa de amostragem da saída de áudio."); - break; - case MENU_ENUM_LABEL_VIDEO_SHARED_CONTEXT: - snprintf(s, len, - "Defina como verdadeiro se os núcleos \n" - "renderizados por hardware devem ter seu \n" - "próprio contexto privado. \n" - "Evita ter que assumir mudanças de \n" - "estado de hardware entre quadros." - ); - break; - case MENU_ENUM_LABEL_CORE_LIST: - snprintf(s, len, - "Carregar núcleo. \n" - " \n" - "Procurar por uma implementação de núcleo \n" - "Libretro. Aonde o navegador de arquivos \n" - "inicia depende do seu caminho \n" - "Diretório de Núcleo. \n" - "Se não definido, inicia na raiz. \n" - " \n" - "Se Diretório de Núcleo estiver definido, o menu \n" - "irá utilizar o caminho como local inicial. \n" - "Se Diretório de Núcleo for um caminho completo, \n" - "ele irá iniciar na pasta do aonde o arquivo está."); - break; - case MENU_ENUM_LABEL_VALUE_MENU_ENUM_CONTROLS_PROLOG: - snprintf(s, len, - "Você pode utilizar os seguintes controles \n" - "abaixo tanto no seu Gamepad quanto no \n" - "teclado a fim de controlar o menu: \n" - " \n" - ); - break; - case MENU_ENUM_LABEL_WELCOME_TO_RETROARCH: - snprintf(s, len, - "Bem-vindo ao RetroArch \n" - ); - break; - case MENU_ENUM_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC: - { - /* Work around C89 limitations */ - char u[501]; - size_t _len; - const char *t = - "O RetroArch utiliza uma forma única de \n" - "sincronização de áudio/video aonde ele \n" - "precisa ser calibrado pela taxa de \n" - "atualização da sua tela para um melhor \n" - "resultado no desempenho. \n" - " \n" - "Se você experimentar qualquer estalido \n" - "no áudio ou rasgo de vídeo, normalmente \n" - "isto significa que você precisa calibrar \n" - "as configurações. Algumas escolhas abaixo: \n" - " \n"; - snprintf(u, sizeof(u), /* can't inline this due to the printf arguments */ - "a) Vá para '%s' -> '%s', e habilite \n" - "'Vídeo paralelizado'. A taxa de atualização \n" - "não irá importar neste modo, a taxa de \n" - "quadros será maior, mas o vídeo será \n" - "menos fluído. \n" - "b) Vá para '%s' -> '%s', e observe \n" - "'%s'. Deixe executar até \n" - "2048 quadros, então pressione '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)); - _len = strlcpy(s, t, len); - strlcpy(s + _len, u, len - _len); - } - break; - case MENU_ENUM_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC: - snprintf(s, len, - "Para analisar por conteúdo, vá para \n" - "'%s' e selecione \n" - "'%s' ou '%s'. \n" - " \n" - "Os arquivos serão comparados com as \n" - "entradas do banco de dados. \n" - "Se houver uma correspondência, um registro \n" - "será adicionado à uma lista de reprodução. \n" - " \n" - "Você poderá então acessar facilmente este \n" - "conteúdo indo até \n" - "'%s' -> '%s'\n" - "em vez de ter que utilizar o \n" - "navegador de arquivos todas as vezes.\n" - " \n" - "NOTA: Conteúdo para alguns núcleos pode ainda \n" - "não ser reconhecido.", - 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_PLAYLISTS_TAB) - ); - break; - case MENU_ENUM_LABEL_VALUE_EXTRACTING_PLEASE_WAIT: - snprintf(s, len, - "Bem-vindo ao RetroArch\n" - "\n" - "Extraindo recursos, por favor aguarde. \n" - "Isso pode levar algum tempo...\n" - ); - break; - case MENU_ENUM_LABEL_INPUT_DRIVER: - { - const char *lbl = settings ? settings->arrays.input_driver : NULL; - - if (string_is_equal(lbl, msg_hash_to_str(MENU_ENUM_LABEL_INPUT_DRIVER_UDEV))) - snprintf(s, len, - "Driver de entrada udev. \n" - " \n" - "Utiliza a recente API evdev joypad \n" - "para suporte a Joystick. Suporta \n" - "hotplugging e force feedback. \n" - " \n" - "O driver lê eventos evdev para suporte \n" - "a teclado. Também suporta keyboard callback, \n" - "Mouses e Touchpads. \n" - " \n" - "Por padrão na maioria das distros, \n" - "nodes /dev/input são somente root (mode 600). \n" - "Você pode criar uma regra udev para torná-los \n" - "acessíveis para não root." - ); - else if (string_is_equal(lbl, - msg_hash_to_str(MENU_ENUM_LABEL_INPUT_DRIVER_LINUXRAW))) - snprintf(s, len, - "Driver de entrada linuxraw. \n" - " \n" - "Este driver requer um TTY ativo. Eventos de \n" - "teclado são lidos diretamente do TTY o que \n" - "o torna simples, mas não tão flexível, \n" - "quanto udev. \n" - "Mouses, etc, não são suportados de nenhum \n" - "modo. \n" - " \n" - "Este driver utiliza a antiga API de Joystick \n" - "(/dev/input/js*)."); - else - snprintf(s, len, - "Driver de entrada.\n" - " \n" - "Dependendo do driver de vídeo, pode \n" - "forçar um driver de entrada diferente."); - } - break; - case MENU_ENUM_LABEL_LOAD_CONTENT_LIST: - snprintf(s, len, - "Carregar Conteúdo. \n" - "Navegar por conteúdo. \n" - " \n" - "Para carregar conteúdo, você precisa de \n" - "um 'Núcleo' para utilizar, e um arquivo \n" - "de conteúdo." - " \n" - "Para controlar aonde o menu inicia \n" - "a procura pelo conteúdo, configure \n" - "'Diretório do Navegador de Arquivos'. \n" - "Se não estiver configurado, ele irá \n" - "iniciar na raiz. \n" - " \n" - "O navegador irá filtrar as \n" - "extensões para o último núcleo definido \n" - "em 'Carregar Núcleo', o qual será utilizado \n" - "quando o conteúdo for carregado." - ); - break; - case MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY: - snprintf(s, len, - "Carregando conteúdo do histórico. \n" - " \n" - "Ao carregar conteúdo, combinações de núcleo \n" - "Libretro e conteúdo 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 do \n" - "RetroArch. \n" - "Se nenhum arquivo de configuração foi \n" - "carregado na inicialização, o histórico \n" - "não será salvo ou carregado, e não irá \n" - "existir no menu principal." - ); - break; - case MENU_ENUM_LABEL_VIDEO_DRIVER: - { - const char *video_driver = settings->arrays.video_driver; - - snprintf(s, len, - "Driver de vídeo atual."); - - if (string_is_equal(video_driver, "gl")) - { - snprintf(s, len, - "Driver de vídeo OpenGL. \n" - " \n" - "Este driver permite utilizar núcleos \n" - "Libretro GL, além de implementações \n" - "de núcleo renderizados por software.\n" - " \n" - "O desempenho de implementações de núcleo \n" - "Libretro GL ou renderizados por software \n" - "é dependente do driver GL de sua placa de vídeo."); - } - else if (string_is_equal(video_driver, "sdl2")) - { - snprintf(s, len, - "Driver de vídeo SDL 2.\n" - " \n" - "Este é um driver de vídeo SDL 2 renderizado \n" - "por software.\n" - " \n" - "O desempenho para implementações de núcleo \n" - "libretro renderizados por software é dependente \n" - "da implementação SDL da sua plataforma."); - } - else if (string_is_equal(video_driver, "sdl1")) - { - snprintf(s, len, - "Driver de vídeo SDL. \n" - " \n" - "Este é um driver de vídeo SDL 1.2 renderizado \n" - "por software.\n" - " \n" - "O desempenho é considerado medíocre. \n" - "Cosidere utilizar apenas como último recurso."); - } - else if (string_is_equal(video_driver, "d3d")) - { - snprintf(s, len, - "Driver de vídeo Direct3D. \n" - " \n" - "O desempenho de núcleos renderizados por \n" - "software depende do driver D3D de base da\n" - "sua placa de vídeo)."); - } - else if (string_is_equal(video_driver, "exynos")) - { - snprintf(s, len, - "Driver de vídeo Exynos-G2D. \n" - " \n" - "Este é um driver de vídeo Exynos de baixo-nível. \n" - "Utiliza o bloco G2D em SoCs Samsung Exynos \n" - "para operações blit. \n" - " \n" - "O desempenho de núcleos renderizados por \n" - "por hardware deve ser ótimo."); - } - else if (string_is_equal(video_driver, "drm")) - { - snprintf(s, len, - "Driver de vídeo Plain DRM. \n" - " \n" - "Este é um driver de vídeo de baixo-nível \n" - "usando libdrm para escala por hardware \n" - "utilizando sobreposições de GPU."); - } - else if (string_is_equal(video_driver, "sunxi")) - { - snprintf(s, len, - "Driver de vídeo Sunxi-G2D. \n" - " \n" - "Este é um driver de vídeo Sunxi de baixo-nível. \n" - "Utiliza o bloco G2D de SoCs Allwinner."); - } - } - break; - case MENU_ENUM_LABEL_AUDIO_DSP_PLUGIN: - snprintf(s, len, - "Plugin DSP de áudio. \n" - "Processa o áudio antes que seja \n" - "enviado para o driver." - ); - break; - case MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER: - { - const char *lbl = settings ? settings->arrays.audio_resampler : NULL; - - if (string_is_equal(lbl, msg_hash_to_str( - MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER_SINC))) - strlcpy(s, - "Implementação SINC em janelas.", len); - else if (string_is_equal(lbl, msg_hash_to_str( - MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER_CC))) - strlcpy(s, - "Implementação de cossenos complicados.", len); - else if (string_is_empty(s)) - strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); - } - break; - - case MENU_ENUM_LABEL_CRT_SWITCH_RESOLUTION: snprintf(s, len, "DEFINIR CRT"); - break; - - case MENU_ENUM_LABEL_CRT_SWITCH_RESOLUTION_SUPER: snprintf(s, len, "DEFINIR CRT SUPER"); - break; - - case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET: - snprintf(s, len, - "Carregar predefinição de shader. \n" - " \n" - "Carregar uma predefinição de shader \n" - "diretamente." - "O menu de shader é atualizado adequadamente. \n" - " \n" - "Se o CGP usa métodos de escala que não sejam \n" - "simples, (e.x. escala da origem, mesmo fator de \n" - "escala para X/Y), o fator de escala exibido \n" - "no menu pode não estar correto." - ); - break; - case MENU_ENUM_LABEL_VIDEO_SHADER_SCALE_PASS: - snprintf(s, len, - "Escala para este estágio. \n" - " \n" - "O fator de escala acumula, e.x. 2x para o \n" - "primeiro estágio e 2x para o segundo \n" - "estágio resulta numa escala total de 4x. \n" - " \n" - "Se houver um fator de escala para o último \n" - "estágio, o resultado é alongado na \n" - "tela com o filtro especificado em \n" - "'Filtro Padrão'. \n" - " \n" - "Se 'Não Importa' estiver definido, escala \n" - "de 1x ou alongar para tela cheia será \n" - "utilizado dependendo se é o último estágio \n" - "ou não." - ); - break; - case MENU_ENUM_LABEL_VIDEO_SHADER_NUM_PASSES: - snprintf(s, len, - "Estágios de shader. \n" - " \n" - "O RetroArch permite a você misturar e \n" - "combinar vários shaders com um número \n" - "arbitrário de estágios de shader, \n" - "com filtros de hardware personalizados \n" - "e fatores de escala.\n" - " \n" - "Esta opção especifica o número de estágios \n" - "de shader a ser utilizado. Se você definir \n" - "isto como 0, e utilizar Aplicar Alterações \n" - "de shader, você irá utilizar um shader \n" - "'em branco'." - " \n" - "A opção Filtro Padrão terá efeito no \n" - "filtro de alongamento."); - break; - case MENU_ENUM_LABEL_VIDEO_SHADER_PARAMETERS: - snprintf(s, len, - "Parâmetros de shader. \n" - " \n" - "Modifica diretamente o shader atual. \n" - "Ele não será salvo no arquivo de \n" - "predefinição CGP/GLSLP."); - break; - case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_PARAMETERS: - snprintf(s, len, - "Parâmetros de Predefinição de shader. \n" - " \n" - "Modifica a predefinição de shader \n" - "atualmente usada no menu." - ); - break; - case MENU_ENUM_LABEL_VIDEO_SHADER_PASS: - snprintf(s, len, - "Caminho para o shader. \n" - " \n" - "Todos os shaders devem ser do mesmo \n" - "tipo (e.x. CG, GLSL ou HLSL). \n" - " \n" - "Defina o Diretório de shaders para estipular \n" - "onde o navegador de arquivos começa a busca \n" - "pelos shaders." - ); - break; - case MENU_ENUM_LABEL_CONFIGURATION_SETTINGS: - snprintf(s, len, - "Determina como arquivos de configuração \n" - "são carregados e priorizados."); - break; - case MENU_ENUM_LABEL_CONFIG_SAVE_ON_EXIT: - snprintf(s, len, - "Salvar configuração em disco ao sair. \n" - "Útil para o menu, já que as configurações \n" - "podem ser modificadas. \n" - "Sobrescreve a configuração. \n" - " \n" - "#inclusões e comentários não são \n" - "preservados. \n" - " \n" - "Por design, o arquivo de configuração é \n" - "considerado imutável já que é \n" - "provavelmente mantido pelo usuário, \n" - "e não deve ser sobrescrito \n" - "por trás das costas dele." -#if defined(RARCH_CONSOLE) || defined(RARCH_MOBILE) - "\nContudo, este não é o caso em \n" - "consoles, onde olhar o arquivo \n" - "de configuração manualmente \n" - "não é realmente uma opção." -#endif - ); - break; - case MENU_ENUM_LABEL_CONFIRM_ON_EXIT: - snprintf(s, len, "Tem certeza que deseja sair?"); - break; - case MENU_ENUM_LABEL_SHOW_HIDDEN_FILES: - snprintf(s, len, "Exibir arquivos e \n" - "pastas ocultos."); - break; - case MENU_ENUM_LABEL_VIDEO_SHADER_FILTER_PASS: - snprintf(s, len, - "Filtro de hardware para esse estágio. \n" - " \n" - "Se 'Não importa' estiver definido, \n" - "'Filtro padrão' será utilizado." - ); - break; - case MENU_ENUM_LABEL_AUTOSAVE_INTERVAL: - snprintf(s, len, - "Salva automaticamente a SRAM \n" - "não volátil em um intervalo regular. \n" - " \n" - "Isso é desativado por padrão a menos \n" - "que seja definido de outra forma. \n" - "O intervalo é medido em segundos. \n" - " \n" - "O valor 0 desativa o salvamento automático."); - break; - case MENU_ENUM_LABEL_INPUT_BIND_DEVICE_TYPE: - snprintf(s, len, - "Tipo de dispositivo de entrada. \n" - " \n" - "Escolhe qual tipo de dispositivo utilizar. \n" - "Isto é relevante para o núcleo Libretro." - ); - break; - case MENU_ENUM_LABEL_LIBRETRO_LOG_LEVEL: - snprintf(s, len, - "Define o nível de registro de eventos dos \n" - "núcleos Libretro. (GET_LOG_INTERFACE) \n" - " \n" - " Se o nível do registro de evento emitido \n" - " pelo núcleo Libretro for abaixo do nível \n" - " libretro_log, ele é ignorado.\n" - " \n" - " Registros DEBUG são sempre ignorados a menos \n" - " que o modo verboso esteja ativado (--verbose).\n" - " \n" - " DEBUG = 0\n" - " INFO = 1\n" - " WARN = 2\n" - " ERROR = 3" - ); - break; - case MENU_ENUM_LABEL_STATE_SLOT_INCREASE: - case MENU_ENUM_LABEL_STATE_SLOT_DECREASE: - snprintf(s, len, - "Compartimento de jogo salvo.\n" - " \n" - "Com o compartimento definido em 0, o nome do \n" - "jogo salvo é *.state \n" - "(ou a definição da linha de comando) \n" - "Quando o compartimento não for 0, o caminho será \n" - "(caminho)(n), onde (n) é o número do box."); - break; - case MENU_ENUM_LABEL_SHADER_APPLY_CHANGES: - snprintf(s, len, - "Aplicar alterações de shader. \n" - " \n" - "Após alterar as configurações de shader, \n" - "utilize essa opção para aplicar as alterações. \n" - " \n" - "Alterar as configurações de shader é uma \n" - "operação relativamente trabalhosa, então \n" - "deve ser feita de modo explícito. \n" - " \n" - "Ao aplicar os shaders, as configurações de \n" - "shader do menu são salvas em um dos arquivos \n" - "temporários (menu.cgp ou menu.glslp) \n" - "e carregadas. \n" - "O arquivo permanece salvo no Diretório \n" - "de shaders após o RetroArch encerrar." - ); - break; - case MENU_ENUM_LABEL_SHADER_WATCH_FOR_CHANGES: - snprintf(s, len, - "Ver arquivos de shader para mudanças. \n" - " \n" - "Depois de salvar as alterações em um shader no disco, \n" - "ele será automaticamente recompilado \n" - "e aplicado ao conteúdo em execução." - ); - break; - case MENU_ENUM_LABEL_MENU_TOGGLE: - snprintf(s, len, - "Alternar o menu."); - break; - case MENU_ENUM_LABEL_GRAB_MOUSE_TOGGLE: - snprintf(s, len, - "Alternar captura do mouse.\n" - " \n" - "Quando o mouse é capturado, o RetroArch oculta \n" - "o cursor do mouse, e mantém o mouse dentro \n" - "da janela para permitir que a entrada de Mouse \n" - "relativa funcione melhor."); - break; - case MENU_ENUM_LABEL_GAME_FOCUS_TOGGLE: - snprintf(s, len, - "Alternar o foco do jogo.\n" - " \n" - "Quando um jogo tem foco, o RetroArch irá \n" - "desabilitar as teclas de atalho e manter \n" - "o cursor do mouse dentro da janela."); - break; - case MENU_ENUM_LABEL_DISK_NEXT: - snprintf(s, len, - "Alternar pelas imagens de disco. Utilizado \n" - "após a ejeção. \n" - " \n" - "Concluído após alternar novamente a ejeção."); - break; - case MENU_ENUM_LABEL_VIDEO_FILTER: -#ifdef HAVE_FILTERS_BUILTIN - snprintf(s, len, - "Filtro de vídeo por CPU."); -#else - snprintf(s, len, - "Filtro de vídeo por CPU.\n" - " \n" - "Caminho para uma biblioteca dinâmica."); -#endif - break; - case MENU_ENUM_LABEL_AUDIO_DEVICE: - snprintf(s, len, - "Substitui o dispositivo de áudio padrão \n" - "utilizado pelo driver de áudio. \n" - "Isto depende do driver. \n" -#ifdef HAVE_ALSA - " \n" - "ALSA quer um dispositivo PCM." -#endif -#ifdef HAVE_OSS - " \n" - "OSS quer um caminho (ex: /dev/dsp)." -#endif -#ifdef HAVE_JACK - " \n" - "JACK quer nomes de porta (ex: system:playback1 \n" - ",system:playback_2)." -#endif -#ifdef HAVE_RSOUND - " \n" - "RSound quer um endereço IP para um \n" - "servidor RSound." -#endif - ); - break; - case MENU_ENUM_LABEL_DISK_EJECT_TOGGLE: - snprintf(s, len, - "Alternar ejeção de disco.\n" - " \n" - "Usado para conteúdo em vários discos."); - break; - case MENU_ENUM_LABEL_ENABLE_HOTKEY: - snprintf(s, len, - "Habilitar outras teclas de atalho. \n" - " \n" - "Se essa tecla de atalho estiver vinculada \n" - "ao teclado ou botão / eixo de joypad, todas \n" - "as outras teclas de atalho serão desabilitadas \n" - "a menos que essa tecla de atalho também esteja \n" - "pressionada ao mesmo tempo. \n" - " \n" - "Isso é útil para implementações com foco \n" - "RETRO_KEYBOARD que consultam uma grande \n" - "parte do teclado, quando não é desejável \n" - "que as teclas de atalho atrapalhem."); - break; - case MENU_ENUM_LABEL_REWIND_ENABLE: - snprintf(s, len, - "Habilitar rebobinamento. \n" - " \n" - "Causa impacto no desempenho, por \n" - "isso vem desabilitado por padrão."); - break; - case MENU_ENUM_LABEL_CHEAT_APPLY_AFTER_TOGGLE: - snprintf(s, len, - "Aplicar trapaça imediatamente após a alternância."); - break; - case MENU_ENUM_LABEL_CHEAT_APPLY_AFTER_LOAD: - snprintf(s, len, - "Aplicar trapaças automaticamente quando o jogo for carregado."); - break; - case MENU_ENUM_LABEL_LIBRETRO_DIR_PATH: - snprintf(s, len, - "Diretório de núcleo. \n" - " \n" - "Um diretório aonde buscar por \n" - "implementações de núcleo Libretro."); - break; - case MENU_ENUM_LABEL_VIDEO_REFRESH_RATE_AUTO: - snprintf(s, len, - "Taxa de atualização automática.\n" - " \n" - "A precisa taxa de atualização do monitor (Hz). \n" - "É usado para calcular a taxa de entrada de áudio \n" - "com a fórmula: \n" - " \n" - "taxa_ent_áudio = taxa de ent. do jogo * \n" - "taxa de atualiz. / taxa de atualiz. do jogo \n" - " \n" - "Se a implementação não reportar um valor, o padrão \n" - "NTSC será usado para garantir compatibilidade\n" - " \n" - "O valor deve ficar próximo a 60 Hz para evitar grandes \n" - "alterações de tom. Se o seu monitor não rodar a 60Hz, \n" - "desabilite o VSync e deixe o padrão."); - break; - case MENU_ENUM_LABEL_VIDEO_REFRESH_RATE_POLLED: - snprintf(s, len, - "Definir taxa de atualização encontrada\n" - " \n" - "Define a taxa de atualização para o valor\n" - "real pesquisado no driver de vídeo."); - break; - case MENU_ENUM_LABEL_VIDEO_ROTATION: - snprintf(s, len, - "Forçar uma rotação específica \n" - "da tela. \n" - " \n" - "A rotação é adicionada a rotação que o \n" - "núcleo Libretro define (consulte Permitir \n" - "Rotação)."); - break; - case MENU_ENUM_LABEL_VIDEO_SCALE: - snprintf(s, len, - "Resolução em tela cheia.\n" - " \n" - "Resolução definida para 0 \n" - "usa a resolução do ambiente.\n"); - break; - case MENU_ENUM_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 quando utilizado o Avanço Rápido. \n" - " \n" - "(ex: 5.0x para conteúdos em 60fps = 300 \n" - "fps máx). \n" - " \n" - "O RetroArch entra em 'sleep' para garantir \n" - "que a taxa máxima não seja excedida. \n" - "Não confie na precisão dessa limitação.."); - break; - case MENU_ENUM_LABEL_VRR_RUNLOOP_ENABLE: - snprintf(s, len, - "Sincronizar com a taxa de quadros exata do conteúdo.\n" - " \n" - "Esta opção é o equivalente de forçar a velocidade x1\n" - "enquanto ainda permite o avanço rápido.\n" - "Sem desvio da taxa de atualização solicitada pelo núcleo\n" - "e sem Controle de Taxa Dinâmica do som)."); - break; - case MENU_ENUM_LABEL_VIDEO_MONITOR_INDEX: - snprintf(s, len, - "Dar preferência a qual monitor. \n" - " \n" - "0 (padrão) significa que nenhum é preferido \n" - "em particular, 1 e acima disso (1 sendo \n" - "o primeiro monitor), sugere ao RetroArch \n" - "para usar aquele monitor em especial."); - break; - case MENU_ENUM_LABEL_VIDEO_CROP_OVERSCAN: - snprintf(s, len, - "Forçar o recorte de quadros em \n" - "overscan. \n" - " \n" - "O comportamento exato desta opção \n" - "é específico da implementação do núcleo."); - break; - case MENU_ENUM_LABEL_VIDEO_SCALE_INTEGER: - snprintf(s, len, - "Apenas dimensiona o vídeo em valores \n" - "inteiros.\n" - " \n" - "O tamanho de base depende da geometria \n" - "relatada pelo sistema e da proporção de tela.\n" - " \n" - "Se a função 'Forçar proporção' não estiver \n" - "definida, X / Y serão dimensionados em \n" - "valores inteiros independentemente."); - break; - case MENU_ENUM_LABEL_AUDIO_VOLUME: - snprintf(s, len, - "Volume de áudio, expresso em dB.\n" - " \n" - "0dB é volume normal, nenhum ganho é aplicado. \n" - "O ganho pode ser controlado na execução com \n" - "as teclas de controle de volume."); - break; - case MENU_ENUM_LABEL_AUDIO_RATE_CONTROL_DELTA: - snprintf(s, len, - "Controle dinâmico de taxa de áudio. \n" - " \n" - "Definido para 0 desativa o controle de taxa. \n" - "Qualquer outro valor controla o delta \n" - "do ajuste de taxa.\n" - " \n" - "Define o quanto a taxa de entrada pode ser \n" - "ajustada dinamicamente. \n" - " \n" - " A taxa de entrada é definida como: \n" - "taxa de ent * (1.0 +/- (delta ajus de taxa))"); - break; - case MENU_ENUM_LABEL_AUDIO_MAX_TIMING_SKEW: - snprintf(s, len, - "Desvio máximo de tempo de áudio. \n" - " \n" - "Define a mudança máxima na taxa de saída \n" - "de áudio. Se aumentado habilita grandes \n" - "mudanças no sincronismo ao custo de \n" - "imprecisão na tonalidade de áudio \n" - "(ex: rodando núcleos PAL em modo NTSC). \n" - " \n" - "A taxa de entrada é definida como: \n" - "taxa de ent * (1.0 +/- (desv máx de tempo))"); - break; - case MENU_ENUM_LABEL_OVERLAY_NEXT: - snprintf(s, len, - "Mudar para a próxima sobreposição.\n" - " \n" - "Circula pela opções."); - break; - case MENU_ENUM_LABEL_LOG_VERBOSITY: - snprintf(s, len, - "Habilitar ou desabilitar o nível \n" - "de verbosidade da interface."); - break; - case MENU_ENUM_LABEL_VOLUME_UP: - snprintf(s, len, - "Aumentar o volume de áudio."); - break; - case MENU_ENUM_LABEL_VOLUME_DOWN: - snprintf(s, len, - "Diminuir o volume de áudio."); - break; - case MENU_ENUM_LABEL_VIDEO_DISABLE_COMPOSITION: - snprintf(s, len, - "Desligar a composição a força. \n" - "Válido somente no Windows Vista/7 por enquanto."); - break; - case MENU_ENUM_LABEL_PERFCNT_ENABLE: - snprintf(s, len, - "Habilitar ou desabilitar os contadores \n" - "de desempenho da interface."); - break; - case MENU_ENUM_LABEL_SYSTEM_DIRECTORY: - snprintf(s, len, - "Diretório de sistema. \n" - " \n" - "Define o diretório de 'sistema'. \n" - "Os núcleos podem consultar este \n" - "diretório para carregar arquivos de BIOS, \n" - "configurações específicas do sistema, etc."); - break; - case MENU_ENUM_LABEL_SAVESTATE_AUTO_SAVE: - case MENU_ENUM_LABEL_SAVESTATE_AUTO_LOAD: - snprintf(s, len, - "Cria automaticamente um jogo salvo \n" - "no final da execução do RetroArch. \n" - " \n" - "O RetroArch irá carregar automaticamente \n" - "qualquer jogo salvo com esse caminho \n" - "na inicialização se a função \n" - "'Carregar automaticamente jogo salvo' \n" - "estiver habilitada."); - break; - case MENU_ENUM_LABEL_VIDEO_THREADED: - snprintf(s, len, - "Usar vídeo paralelizado. \n" - " \n" - "Utilizar esta função pode melhorar o \n" - "desempenho ao custo de latência e mais \n" - "engasgamento de vídeo."); - break; - case MENU_ENUM_LABEL_VIDEO_VSYNC: - snprintf(s, len, - "V-Sync de vídeo.\n"); - break; - case MENU_ENUM_LABEL_VIDEO_HARD_SYNC: - snprintf(s, len, - "Tentar a sincronia rígida entre \n" - "CPU e GPU. \n" - " \n" - "Reduz a latência ao custo de \n" - "desempenho."); - break; - case MENU_ENUM_LABEL_REWIND_GRANULARITY: - snprintf(s, len, - "Níveis do rebobinamento.\n" - " \n" - " Ao rebobinar o número definido de quadros, \n" - "você pode rebobinar vários quadros por vez, \n" - "aumentando a velocidade de rebobinamento."); - break; - case MENU_ENUM_LABEL_REWIND_BUFFER_SIZE: - snprintf(s, len, - "Tamanho do buffer do rebobinamento (MB).\n" - " \n" - " A quantidade de memória em MB a ser reservada \n" - "para rebobinamento. Aumentar este valor aumenta \n" - "o comprimento do histórico de rebobinagem.\n"); - break; - case MENU_ENUM_LABEL_REWIND_BUFFER_SIZE_STEP: - snprintf(s, len, - "Tamanho do intervalo de ajuste do buffer (MB).\n" - " \n" - " Cada vez que você aumentar ou diminuir o valor do \n" - "tamanho do buffer de rebobinamento por meio \n" - "dessa interface, ele será alterado por esse valor.\n"); - break; - case MENU_ENUM_LABEL_SCREENSHOT: - snprintf(s, len, - "Capturar tela."); - break; - case MENU_ENUM_LABEL_VIDEO_FRAME_DELAY: - snprintf(s, len, - "Define quantos milissegundos atrasar \n" - "após o V-Sync antes de rodar o núcleo. \n" - "\n" - "Reduz a latência ao custo de maior \n" - "risco de engasgamento de vídeo. \n" - " \n" - "O máximo é 15."); - break; - case MENU_ENUM_LABEL_VIDEO_SHADER_DELAY: - snprintf(s, len, - "Define por quantos milissegundos o carregamento automático\n" - "de shaders será atrasado.\n" - "\n" - "Pode solucionar problemas gráficos devido ao uso de \n" - "software de 'captura de tela', como software de streaming."); - break; - case MENU_ENUM_LABEL_VIDEO_HARD_SYNC_FRAMES: - snprintf(s, len, - "Define quantos quadros a CPU pode rodar \n" - "à frente da GPU quando utilizando o \n" - "recurso 'Sincronização Rígida de GPU'. \n" - " \n" - "O máximo é 3. \n" - " \n" - " 0: Sincroniza na GPU imediatamente. \n" - " 1: Sincroniza no quadro anterior. \n" - " 2: Etc..."); - break; - case MENU_ENUM_LABEL_VIDEO_BLACK_FRAME_INSERTION: - snprintf(s, len, - "Inserir um quadro opaco entre quadros.\n" - " \n" - "Útil para usuários com telas de 120Hz que \n" - "desejam jogar conteúdos em 60Hz \n" - "para eliminar efeito de sombra. \n" - " \n" - "A taxa de atualização de vídeo ainda deve \n" - "ser configurada como se fosse uma tela de \n" - "60Hz (dividir a taxa de atualização por 2)."); - break; - case MENU_ENUM_LABEL_RGUI_SHOW_START_SCREEN: - snprintf(s, len, - "Exibir a tela inicial no menu.\n" - "É automaticamente definido como falso após \n" - "o programa iniciar pela primeira vez. \n" - " \n" - "Somente é atualizado no arquivo de \n" - "configuração se 'Salvar Configuração ao Sair' \n" - "estiver habilitado."); - break; - case MENU_ENUM_LABEL_VIDEO_FULLSCREEN: - snprintf(s, len, "Alternar tela cheia."); - break; - case MENU_ENUM_LABEL_BLOCK_SRAM_OVERWRITE: - snprintf(s, len, - "Bloqueia a SRAM de ser sobrescrita \n" - "ao carregar um jogo salvo. \n" - " \n" - "Pode causar problemas no jogo."); - break; - case MENU_ENUM_LABEL_PAUSE_NONACTIVE: - snprintf(s, len, - "Pausar o jogo quando o foco da janela \n" - "for perdido."); - break; - case MENU_ENUM_LABEL_VIDEO_GPU_SCREENSHOT: - snprintf(s, len, - "Capturas de tela com shader \n" - "de GPU, se disponível."); - break; - case MENU_ENUM_LABEL_SCREENSHOT_DIRECTORY: - snprintf(s, len, - "Diretório de Capturas de Tela. \n" - " \n" - "Diretório para armazenar as capturas de tela." - ); - break; - case MENU_ENUM_LABEL_VIDEO_SWAP_INTERVAL: - snprintf(s, len, - "Intervalo de troca da sincronia vertical \n" - "(V-Sync). \n" - " \n" - "Usa um intervalo de troca personalizado \n" - "para V-Sync. Defina para reduzir \n" - "efetivamente a taxa de atualização \n" - "do monitor pela metade."); - break; - case MENU_ENUM_LABEL_SAVEFILE_DIRECTORY: - snprintf(s, len, - "Diretório de dados da memória do jogo. \n" - " \n" - "Salvar todos os dados da memória do jogo (*.srm) \n" - "neste diretório. Isso inclui arquivos \n" - "relacionados, como .rt, .psrm, etc... \n" - " \n" - "Será substituído por opções definidas \n" - "explicitamente na linha de comando."); - break; - case MENU_ENUM_LABEL_SAVESTATE_DIRECTORY: - snprintf(s, len, - "Diretório de jogos salvos. \n" - " \n" - "Salvar todos os jogos salvos \n" - "(*.state) neste diretório. \n" - " \n" - "Será substituído por opções definidas \n" - "explicitamente na linha de comando."); - break; - case MENU_ENUM_LABEL_ASSETS_DIRECTORY: - snprintf(s, len, - "Diretório de recursos. \n" - " \n" - "Esta localização é consultada por padrão \n" - "quando a interface do menu tenta procurar \n" - "por recursos carregáveis, etc."); - break; - case MENU_ENUM_LABEL_DYNAMIC_WALLPAPERS_DIRECTORY: - snprintf(s, len, - "Diretório de planos de fundo dinâmicos. \n" - " \n" - "O local para armazenar planos de fundo \n" - "dinamicamente carregados pelo menu \n" - "dependendo do contexto."); - break; - case MENU_ENUM_LABEL_SLOWMOTION_RATIO: - snprintf(s, len, - "Taxa de câmera lenta." - " \n" - "Quando está em Câmera Lenta, o conteúdo será \n" - "diminuído pelo fator especificado/definido."); - break; - case MENU_ENUM_LABEL_INPUT_BUTTON_AXIS_THRESHOLD: - snprintf(s, len, - "Define a zona morta do controle analógico. \n" - " \n" - "Até que ponto um eixo deve ser \n" - "movido para resultar em um botão pressionado. \n" - "Os valores aceitos são entre [0.0, 1.0]."); - break; - case MENU_ENUM_LABEL_INPUT_TURBO_PERIOD: - snprintf(s, len, - "Período do turbo.\n" - " \n" - "Descreve o período quando os botões \n" - "com turbo habilitado são alternados. \n" - " \n" - "Os números são descritos em quadros." - ); - break; - case MENU_ENUM_LABEL_INPUT_TURBO_MODE: - snprintf(s, len, - "Modo turbo.\n" - " \n" - "Seleciona o comportamento geral do modo turbo." - ); - break; - case MENU_ENUM_LABEL_INPUT_TURBO_DEFAULT_BUTTON: - snprintf(s, len, - "Botão padrão de turbo.\n" - " \n" - "O botão individual para o modo turbo.\n" - ); - break; - case MENU_ENUM_LABEL_INPUT_DUTY_CYCLE: - snprintf(s, len, - "Ciclo de trabalho.\n" - " \n" - "Descreve quão longo deve ser o período \n" - "de um botão com turbo habilitado. \n" - " \n" - "Os números são descritos em quadros." - ); - break; - case MENU_ENUM_LABEL_INPUT_TOUCH_ENABLE: - snprintf(s, len, "Habilitar suporte a toque."); - break; - case MENU_ENUM_LABEL_INPUT_PREFER_FRONT_TOUCH: - snprintf(s, len, "Usar toque frontal ao invés de traseiro."); - break; - case MENU_ENUM_LABEL_MOUSE_ENABLE: - snprintf(s, len, "Habilitar controle do menu por Mouse."); - break; - case MENU_ENUM_LABEL_POINTER_ENABLE: - snprintf(s, len, "Habilitar controle do menu por toque."); - break; - case MENU_ENUM_LABEL_MENU_WALLPAPER: - snprintf(s, len, - "Selecionar uma imagem para definir como \n" - "plano de fundo."); - break; - case MENU_ENUM_LABEL_NAVIGATION_WRAPAROUND: - snprintf(s, len, - "Voltar ao início e/ou final \n" - "se o limite da lista for alcançado \n" - "horizontalmente ou verticalmente."); - break; - case MENU_ENUM_LABEL_PAUSE_LIBRETRO: - snprintf(s, len, - "Se desativado, o jogo continuará sendo \n" - "executado em segundo plano quando o \n" - "menu estiver ativo."); - break; - case MENU_ENUM_LABEL_SUSPEND_SCREENSAVER_ENABLE: - snprintf(s, len, - "Desativar o protetor de tela. É uma sugestão \n" - "que não precisa necessariamente ser \n" - "honrada pelo driver de vídeo."); - break; - case MENU_ENUM_LABEL_NETPLAY_MODE: - snprintf(s, len, - "Modo cliente do jogo em rede para o usuário atual. \n" - "Será modo 'Servidor' se estiver desabilitado."); - break; - case MENU_ENUM_LABEL_NETPLAY_DELAY_FRAMES: - snprintf(s, len, - "A quantidade de atraso de quadros para \n" - "utilizar no jogo em rede. \n" - " \n" - "Aumentar este valor irá aumentar o \n" - "desempenho, mas introduz mais latência."); - break; - case MENU_ENUM_LABEL_NETPLAY_PUBLIC_ANNOUNCE: - snprintf(s, len, - "Define se os jogos de jogo em rede são anunciados \n" - "publicamente. \n" - " \n" - "Se definido como falso, os clientes \n" - "deverão conectar manualmente em vez \n" - "de usar o lobby público."); - break; - case MENU_ENUM_LABEL_NETPLAY_START_AS_SPECTATOR: - snprintf(s, len, - "Define se o jogo em rede deve iniciar em \n" - "modo espectador. \n" - " \n" - "Se definido como verdadeiro, o jogo em rede estará \n" - "em modo espectador no começo. Sempre é possível \n" - "alterar o modo mais tarde."); - break; - case MENU_ENUM_LABEL_NETPLAY_ALLOW_SLAVES: - snprintf(s, len, - "Define se conexões em modo escravo são \n" - "permitidas. \n" - " \n" - "Clientes em modo escravo requerem muito pouco \n" - "poder de processamento em ambos os lados, mas \n" - "irão sofrer significativamente da latência de rede."); - break; - case MENU_ENUM_LABEL_NETPLAY_REQUIRE_SLAVES: - snprintf(s, len, - "Define se conexões que não estão \n" - "em modo escravo são proibidas. \n" - " \n" - "Não recomendado, exceto para redes muito \n" - "rápidas com máquinas muito lentas. \n"); - break; - case MENU_ENUM_LABEL_NETPLAY_CHECK_FRAMES: - snprintf(s, len, - "Frequência em quadros na qual o jogo em rede \n" - "irá verificar se o anfitrião e o cliente \n" - "estão sincronizados. \n" - " \n" - "Na maioria dos núcleos, este valor não terá efeito \n" - "e pode ser ignorado. Com núcleos não determinísticos, \n" - "este valor define a frequência com que os pares\n" - "serão sincronizados. Em núcleos defeituosos, valores \n" - "diferentes de zero irão causar problemas de desempenho \n" - "Defina como zero para desativar verificações\n" - "Este valor só é usado no anfitrião do jogo em rede. \n"); - break; - case MENU_ENUM_LABEL_NETPLAY_INPUT_LATENCY_FRAMES_MIN: - snprintf(s, len, - "O número de quadros de latência de entrada \n" - "que pode ser usado pelo jogo em rede para \n" - "mascarar a latência de rede. \n" - " \n" - "Quando usando jogo em rede, esta opção atrasa a \n" - "entrada local, de modo que o quadro em \n" - "execução fique mais próximo do quadro \n" - "recebido pela rede. Isso reduz a oscilação \n" - "e torna o jogo em rede menos intenso para a CPU, \n" - "mas ao custo de atraso perceptível na entrada. \n"); - break; - case MENU_ENUM_LABEL_NETPLAY_INPUT_LATENCY_FRAMES_RANGE: - snprintf(s, len, - "O intervalo de quadros de latência \n" - "de entrada que pode ser usado pelo jogo em rede \n" - "para mascarar a latência da rede. \n" - "\n" - "Se habilitado, o jogo em rede irá ajustar o número \n" - "de quadros de latência de entrada \n" - "dinamicamente para balancear tempo de CPU, \n" - "latência de entrada e latência de rede. Isso \n" - "reduz a oscilação e torna o jogo em rede menos intensivo \n" - "para a CPU, mas ao custo de atraso imprevisível \n" - "na entrada."); - break; - case MENU_ENUM_LABEL_NETPLAY_NAT_TRAVERSAL: - snprintf(s, len, - "Quando hospedando, tentar escutar por \n" - "conexões da internet pública usando UPnP \n" - "ou tecnologias similares para escapar de LANs. \n"); - break; - case MENU_ENUM_LABEL_NETPLAY_USE_MITM_SERVER: - snprintf(s, len, - "Quando hospedando, transmitir a conexão \n" - "através de um servidor 'homem no meio' \n" - "para contornar problemas de firewall \n" - "ou NAT/UPnP. \n"); - break; - case MENU_ENUM_LABEL_NETPLAY_MITM_SERVER: - snprintf(s, len, - "Especifica o servidor homem no meio \n" - "para usar no jogo em rede. Um servidor localizado \n" - "mais perto de você pode ter menos latência. \n"); - break; - case MENU_ENUM_LABEL_VIDEO_MAX_SWAPCHAIN_IMAGES: - snprintf(s, len, - "Máximo de imagens na cadeia de trocas. \n" - "Isto pode informar ao driver de vídeo para \n" - "usar um modo de buffer específico. \n" - " \n" - "Buffer único - 1\n" - "Buffer duplo - 2\n" - "Buffer triplo - 3\n" - " \n" - "Definir o modo de buffer correto pode \n" - "ter um grande impacto na latência."); - break; - case MENU_ENUM_LABEL_VIDEO_SMOOTH: - snprintf(s, len, - "Suaviza a imagem com filtragem bilinear. \n" - "Deve ser desativado se estiver usando shaders."); - break; - case MENU_ENUM_LABEL_VIDEO_CTX_SCALING: - snprintf(s, len, -#ifdef HAVE_ODROIDGO2 - "Escala RGA e filtragem bicúbica. Pode quebrar os widgets." -#else - "Escala de contexto de hardware (se disponível)." -#endif - ); - break; - case MENU_ENUM_LABEL_TIMEDATE_ENABLE: - snprintf(s, len, - "Exibir data e/ou hora atuais dentro do menu."); - break; - case MENU_ENUM_LABEL_TIMEDATE_STYLE: - snprintf(s, len, - "Estilo para mostrar a data atual e/ou a hora."); - break; - case MENU_ENUM_LABEL_BATTERY_LEVEL_ENABLE: - snprintf(s, len, - "Exibir o nível atual de bateria dentro do menu."); - break; - case MENU_ENUM_LABEL_CORE_ENABLE: - snprintf(s, len, - "Exibir o nome do núcleo atual dentro do menu."); - break; - case MENU_ENUM_LABEL_NETPLAY_ENABLE_HOST: - snprintf(s, len, - "Habilitar o jogo em rede no \n" - "modo anfitrião (servidor)."); - break; - case MENU_ENUM_LABEL_NETPLAY_ENABLE_CLIENT: - snprintf(s, len, - "Habilitar o jogo em rede no modo cliente."); - break; - case MENU_ENUM_LABEL_NETPLAY_DISCONNECT: - snprintf(s, len, - "Desconectar de uma conexão de jogo em rede ativa."); - break; - case MENU_ENUM_LABEL_NETPLAY_LAN_SCAN_SETTINGS: - snprintf(s, len, - "Buscar por e conectar aos anfitriões \n" - "de jogo em rede na rede local."); - break; - case MENU_ENUM_LABEL_NETPLAY_SETTINGS: - snprintf(s, len, - "Configurações relacionadas ao jogo em rede."); - break; - case MENU_ENUM_LABEL_DYNAMIC_WALLPAPER: - snprintf(s, len, - "Carregar dinamicamente um novo plano de \n" - "fundo dependendo do contexto."); - break; - case MENU_ENUM_LABEL_CORE_UPDATER_BUILDBOT_URL: - snprintf(s, len, - "URL para o diretório de atualização \n" - "de núcleos no buildbot do Libreto."); - break; - case MENU_ENUM_LABEL_BUILDBOT_ASSETS_URL: - snprintf(s, len, - "URL para o diretório de atualizações \n" - "de recursos no buildbot do Libretro."); - break; - case MENU_ENUM_LABEL_INPUT_REMAP_BINDS_ENABLE: - snprintf(s, len, - "Se habilitado, substitui os vínculos da \n" - "entrada com os vínculos remapeados \n" - "definidos para o núcleo atual."); - break; - case MENU_ENUM_LABEL_OVERLAY_DIRECTORY: - snprintf(s, len, - "Diretório de Sobreposições. \n" - " \n" - "Define um diretório onde as sobreposições \n" - "são mantidas para fácil acesso."); - break; - case MENU_ENUM_LABEL_VIDEO_LAYOUT_DIRECTORY: - snprintf(s, len, - "Diretório do esquema de vídeo. \n" - " \n" - "Define um diretório onde os esquemas de vídeo \n" - "são mantidos para facilitar o acesso."); - break; - case MENU_ENUM_LABEL_INPUT_MAX_USERS: - snprintf(s, len, - "Número máximo de usuários \n" - "suportados pelo RetroArch."); - break; - case MENU_ENUM_LABEL_CORE_UPDATER_AUTO_EXTRACT_ARCHIVE: - snprintf(s, len, - "Após o download, extrair automaticamente \n" - "os arquivos contidos nos arquivos \n" - "comprimidos baixados."); - break; - case MENU_ENUM_LABEL_NAVIGATION_BROWSER_FILTER_SUPPORTED_EXTENSIONS_ENABLE: - snprintf(s, len, - "Filtrar arquivos em exibição \n" - "por extensões suportadas."); - break; - case MENU_ENUM_LABEL_NETPLAY_NICKNAME: - snprintf(s, len, - "O nome de usuário da pessoa executando \n" - "o RetroArch. \n" - "Será utilizado para jogos online."); - break; - case MENU_ENUM_LABEL_NETPLAY_TCP_UDP_PORT: - snprintf(s, len, - "A porta do endereço de IP do anfitrião. \n" - "Pode ser ou uma porta TCP ou uma porta UDP."); - break; - case MENU_ENUM_LABEL_NETPLAY_SPECTATOR_MODE_ENABLE: - snprintf(s, len, - "Habilitar ou desabilitar o modo espectador \n" - "para o usuário durante o jogo em rede."); - break; - case MENU_ENUM_LABEL_NETPLAY_IP_ADDRESS: - snprintf(s, len, - "O endereço do anfitrião a se conectar."); - break; - case MENU_ENUM_LABEL_NETPLAY_PASSWORD: - snprintf(s, len, - "A senha para conectar ao anfitrião de jogo em rede \n" - "Utilizado apenas em modo anfitrião."); - break; - case MENU_ENUM_LABEL_NETPLAY_SPECTATE_PASSWORD: - snprintf(s, len, - "A senha para conectar ao anfitrião \n" - "de jogo em rede apenas com privilégios de \n" - "espectador. Utilizado apenas em modo \n" - "anfitrião."); - break; - case MENU_ENUM_LABEL_STDIN_CMD_ENABLE: - snprintf(s, len, - "Habilitar interface de comando stdin."); - break; - case MENU_ENUM_LABEL_UI_COMPANION_START_ON_BOOT: - snprintf(s, len, - "Rodar o Companheiro de Interface de Usuário \n" - "na inicialização (se disponível)."); - break; - case MENU_ENUM_LABEL_MENU_DRIVER: - snprintf(s, len, "Driver de menu a ser utilizado."); - break; - case MENU_ENUM_LABEL_INPUT_MENU_ENUM_TOGGLE_GAMEPAD_COMBO: - snprintf(s, len, - "Combinação de botões do Gamepad \n" - "para alternar o menu. \n" - " \n" - "0 - Nenhuma \n" - "1 - Pressionar L + R + Y + Direcional \n" - "para baixo simultaneamente. \n" - "2 - Pressionar L3 + R3 simultaneamente. \n" - "3 - Pressionar Start + Select simultaneamente."); - break; - case MENU_ENUM_LABEL_INPUT_ALL_USERS_CONTROL_MENU: - snprintf(s, len, "Permitir controlar o menu a qualquer usuário. \n" - " \n" - "Se desabilitado, apenas o Usuário 1 \n" - "poderá controlar o menu."); - break; - case MENU_ENUM_LABEL_INPUT_AUTODETECT_ENABLE: - snprintf(s, len, - "Habilitar a detecção automática de entrada. \n" - " \n" - "Vai tentar autoconfigurar \n" - "Joypads no estilo 'Plug-and-Play'."); - break; - case MENU_ENUM_LABEL_CAMERA_ALLOW: - snprintf(s, len, - "Permitir ou negar acesso a câmera \n" - "pelos núcleos."); - break; - case MENU_ENUM_LABEL_LOCATION_ALLOW: - snprintf(s, len, - "Permitir ou negar acesso aos \n" - "serviços de localização pelos núcleos."); - break; - case MENU_ENUM_LABEL_TURBO: - snprintf(s, len, - "Habilitar turbo.\n" - " \n" - "Manter o turbo pressionado enquanto \n" - "pressiona outro botão faz com que o \n" - "botão entre em modo turbo, onde o estado \n" - "do botão é modulado com um sinal periódico. \n" - " \n" - "A modulação termina quando o botão em si \n" - "mesmo (não o botão de turbo) for liberado."); - break; - case MENU_ENUM_LABEL_OSK_ENABLE: - snprintf(s, len, - "Habilitar/desabilitar teclado virtual."); - break; - case MENU_ENUM_LABEL_AUDIO_MUTE: - snprintf(s, len, - "Áudio mudo/não-mudo."); - break; - case MENU_ENUM_LABEL_REWIND: - snprintf(s, len, - "Manter o botão pressionado para \n" - "Voltar Atrás. \n" - " \n" - "Voltar Atrás precisa estar habilitado."); - break; - case MENU_ENUM_LABEL_EXIT_EMULATOR: - snprintf(s, len, - "Tecla para sair do RetroArch de modo limpo." -#if !defined(RARCH_MOBILE) && !defined(RARCH_CONSOLE) - "\nEncerrá-lo de forma brusca (SIGKILL, \n" - "etc) irá terminar sem salvar \n" - "RAM, etc. Em Unix-likes, \n" - "SIGINT/SIGTERM permitem \n" - "uma desinicialização limpa." -#endif - ); - break; - case MENU_ENUM_LABEL_LOAD_STATE: - snprintf(s, len, - "Carregar jogo salvo."); - break; - case MENU_ENUM_LABEL_SAVE_STATE: - snprintf(s, len, - "Salvar jogo."); - break; - case MENU_ENUM_LABEL_NETPLAY_GAME_WATCH: - snprintf(s, len, - "Alternar modo jogador/espectador do jogo em rede."); - break; - case MENU_ENUM_LABEL_CHEAT_INDEX_PLUS: - snprintf(s, len, - "Aumentar o índice de trapaça. \n"); - break; - case MENU_ENUM_LABEL_CHEAT_INDEX_MINUS: - snprintf(s, len, - "Diminuir o índice de trapaça. \n"); - break; - case MENU_ENUM_LABEL_SHADER_PREV: - snprintf(s, len, - "Aplicar o shader anterior no diretório."); - break; - case MENU_ENUM_LABEL_SHADER_NEXT: - snprintf(s, len, - "Aplicar o próximo shader do diretório."); - break; - case MENU_ENUM_LABEL_RESET: - snprintf(s, len, - "Reiniciar o conteúdo. \n"); - break; - case MENU_ENUM_LABEL_PAUSE_TOGGLE: - snprintf(s, len, - "Alternar estado pausado e não-pausado."); - break; - case MENU_ENUM_LABEL_CHEAT_TOGGLE: - snprintf(s, len, - "Alternar índice de trapaça. \n"); - break; - case MENU_ENUM_LABEL_CHEAT_IDX: - snprintf(s, len, - "Posição do índice na lista.\n"); - break; - case MENU_ENUM_LABEL_CHEAT_ADDRESS_BIT_POSITION: - snprintf(s, len, - "Bitmask o endereço quando o tamanho da busca da memória for < 8-bit.\n"); - break; - case MENU_ENUM_LABEL_CHEAT_REPEAT_COUNT: - snprintf(s, len, - "O número de vezes que a trapaça será aplicada.\nUse com as outras duas opções de iteração para afetar grandes áreas de memória."); - break; - case MENU_ENUM_LABEL_CHEAT_REPEAT_ADD_TO_ADDRESS: - snprintf(s, len, - "Após cada 'Número de iterações', o endereço de memória será aumentado por este número multiplicado pelo 'Tamanho da pesquisa na memória'."); - break; - case MENU_ENUM_LABEL_CHEAT_REPEAT_ADD_TO_VALUE: - snprintf(s, len, - "Após cada 'Número de iterações', o valor será aumentado por esse valor."); - break; - case MENU_ENUM_LABEL_CHEAT_MATCH_IDX: - snprintf(s, len, - "Selecionar a coincidência para visualizar."); - break; - case MENU_ENUM_LABEL_CHEAT_START_OR_CONT: - snprintf(s, len, - "Verificar a memória para criar novas trapaças"); - break; - case MENU_ENUM_LABEL_CHEAT_START_OR_RESTART: - snprintf(s, len, - "Esquerda/Direita para alterar o tamanho do bit\n"); - break; - case MENU_ENUM_LABEL_CHEAT_SEARCH_EXACT: - snprintf(s, len, - "Esquerda/Direita para alterar o valor\n"); - break; - case MENU_ENUM_LABEL_CHEAT_SEARCH_LT: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_SEARCH_GT: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_SEARCH_EQ: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_SEARCH_NEQ: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_SEARCH_EQPLUS: - snprintf(s, len, - "Esquerda/Direita para alterar o valor\n"); - break; - case MENU_ENUM_LABEL_CHEAT_SEARCH_EQMINUS: - snprintf(s, len, - "Esquerda/Direita para alterar o valor\n"); - break; - case MENU_ENUM_LABEL_CHEAT_ADD_MATCHES: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_VIEW_MATCHES: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_CREATE_OPTION: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_DELETE_OPTION: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_ADD_NEW_TOP: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_RELOAD_CHEATS: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_ADD_NEW_BOTTOM: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_DELETE_ALL: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_BIG_ENDIAN: - snprintf(s, len, - "Big endian : 258 = 0x0102\n" - "Little endian : 258 = 0x0201"); - break; - case MENU_ENUM_LABEL_HOLD_FAST_FORWARD: - snprintf(s, len, - "Manter pressionado para avanço rápido \n" - "Soltar o botão desativa o avanço rápido."); - break; - case MENU_ENUM_LABEL_SLOWMOTION_HOLD: - snprintf(s, len, - "Manter pressionado para câmera lenta."); - break; - case MENU_ENUM_LABEL_FRAME_ADVANCE: - snprintf(s, len, - "Avanço de quadro quando o conteúdo \n" - "estiver pausado."); - break; - case MENU_ENUM_LABEL_L_X_PLUS: - case MENU_ENUM_LABEL_L_X_MINUS: - case MENU_ENUM_LABEL_L_Y_PLUS: - case MENU_ENUM_LABEL_L_Y_MINUS: - case MENU_ENUM_LABEL_R_X_PLUS: - case MENU_ENUM_LABEL_R_X_MINUS: - case MENU_ENUM_LABEL_R_Y_PLUS: - case MENU_ENUM_LABEL_R_Y_MINUS: - snprintf(s, len, - "Eixos para controle analógico (tipo DualShock). \n" - " \n" - "Vinculado como de costume, contudo, \n" - "se um eixo analógico real \n" - "estiver vinculado, ele pode ser lido \n" - "como um analógico verdadeiro. \n" - " \n" - "Eixo X positivo é direita. \n" - "Eixo Y positivo é para baixo."); - break; - case MENU_ENUM_LABEL_VALUE_WHAT_IS_A_CORE_DESC: - snprintf(s, len, - "O RetroArch sozinho não faz nada. \n" - " \n" - "Para fazê-lo funcionar, você precisa \n" - "carregar um programa nele. \n" - "\n" - "Nós chamamos esses programas de \n" - "'Núcleo Libretro', ou 'núcleo' para encurtar. \n" - " \n" - "Para carregar um núcleo, selecione um \n" - "em 'Carregar Núcleo'.\n" - " \n" -#ifdef HAVE_NETWORKING - "Você pode obter núcleos de várias formas: \n" - "* Baixando-os, indo em \n" - "'%s' -> '%s'.\n" - "* Movendo-os manualmente para \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 - "Você pode obter núcleos \n" - "movendo-os manualmente para \n" - "'%s'.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) -#endif - ); - break; - case MENU_ENUM_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD_DESC: - snprintf(s, len, - "Você pode alterar a sobreposição de \n" - "gamepad virtual indo em \n" - "'%s' -> '%s'. \n" - " \n" - "De lá você pode alterar a sobreposição, \n" - "mudar o tamanho e opacidade dos botões, etc. \n" - " \n" - "NOTA: Por padrão, as sobreposições de gamepad \n" - "virtual ficam ocultas quando dentro do menu. \n" - "Se você quiser alterar este comportamento, \n" - "você pode definir '%s' como falso.", - 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; - case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_ENABLE: - snprintf(s, len, - "Ativa uma cor de fundo para a exibição da tela (OSD)."); - break; - case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_RED: - snprintf(s, len, - "Define o valor vermelho da cor de fundo da exibição da tela (OSD). Valores válidos estão entre 0 e 255."); - break; - case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_GREEN: - snprintf(s, len, - "Define o valor verde da cor de fundo da exibição da tela (OSD). Valores válidos estão entre 0 e 255."); - break; - case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_BLUE: - snprintf(s, len, - "Define o valor azul da cor de fundo da exibição da tela (OSD). Valores válidos estão entre 0 e 255."); - break; - case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_OPACITY: - snprintf(s, len, - "Define a opacidade da cor de fundo da exibição da tela (OSD). Valores válidos estão entre 0.0 e 1.0."); - break; - case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_COLOR_RED: - snprintf(s, len, - "Define o valor vermelho da cor do texto da exibição da tela (OSD). Valores válidos estão entre 0 e 255."); - break; - case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_COLOR_GREEN: - snprintf(s, len, - "Define o valor verde da cor do texto da exibição da tela (OSD). Valores válidos estão entre 0 e 255."); - break; - case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_COLOR_BLUE: - snprintf(s, len, - "Define o valor azul da cor do texto da exibição da tela (OSD). Valores válidos estão entre 0 e 255."); - break; - case MENU_ENUM_LABEL_MIDI_DRIVER: - snprintf(s, len, - "Driver MIDI a ser utilizado."); - break; - case MENU_ENUM_LABEL_MIDI_INPUT: - snprintf(s, len, - "Define o dispositivo de entrada (driver específico).\n" - "Quando definido para \"Off\", a entrada MIDI será desativada.\n" - "O nome do dispositivo também pode ser digitado."); - break; - case MENU_ENUM_LABEL_MIDI_OUTPUT: - snprintf(s, len, - "Define o dispositivo de saída (driver específico).\n" - "Quando definido para \"Off\", a saída MIDI será desativada.\n" - "O nome do dispositivo também pode ser digitado.\n" - " \n" - "Quando a saída MIDI é ativada e o núcleo e o jogo suportam a saída MIDI,,\n" - "Quando a saída MIDI é ativada e o núcleo e o jogo suportam a saída MIDI,\n" - "No caso do driver MIDI \"null\", isso significa que esses sons não serão audíveis."); - break; - case MENU_ENUM_LABEL_MIDI_VOLUME: - snprintf(s, len, - "Define o volume principal do dispositivo de saída."); - break; - default: - if (string_is_empty(s)) - strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); - return -1; - } - - return 0; -} -#endif - -#ifdef HAVE_MENU -static const char *menu_hash_to_str_pt_br_label_enum(enum msg_hash_enums msg) -{ - if (msg <= MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_END && - msg >= MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_BEGIN) - { - static char hotkey_lbl[128] = {0}; - unsigned idx = msg - MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_BEGIN; - snprintf(hotkey_lbl, sizeof(hotkey_lbl), "input_hotkey_binds_%d", idx); - return hotkey_lbl; - } - - switch (msg) - { -#include "msg_hash_lbl.h" - default: -#if 0 - RARCH_LOG("Unimplemented: [%d]\n", msg); -#endif - break; - } - - return "null"; -} -#endif - -const char *msg_hash_to_str_pt_br(enum msg_hash_enums msg) -{ -#ifdef HAVE_MENU - const char *ret = menu_hash_to_str_pt_br_label_enum(msg); - - if (ret && !string_is_equal(ret, "null")) - return ret; -#endif - - switch (msg) - { -#include "msg_hash_pt_br.h" - default: -#if 0 - RARCH_LOG("Unimplemented: [%d]\n", msg); - { - RARCH_LOG("[%d] : %s\n", msg - 1, msg_hash_to_str(((enum msg_hash_enums)(msg - 1)))); - } -#endif - break; - } - - return "null"; -} diff --git a/msg_hash.c b/msg_hash.c index 1c6067500e4..9f124f6ef07 100644 --- a/msg_hash.c +++ b/msg_hash.c @@ -40,53 +40,6 @@ static unsigned uint_user_language; int msg_hash_get_help_enum(enum msg_hash_enums msg, char *s, size_t len) { - int ret = -1; - -#ifdef HAVE_LANGEXTRA - switch (uint_user_language) - { - case RETRO_LANGUAGE_PORTUGUESE_BRAZIL: - ret = msg_hash_get_help_pt_br_enum(msg, s, len); - break; - case RETRO_LANGUAGE_CHINESE_SIMPLIFIED: - ret = msg_hash_get_help_chs_enum(msg, s, len); - break; - case RETRO_LANGUAGE_PORTUGUESE_PORTUGAL: - case RETRO_LANGUAGE_JAPANESE: - case RETRO_LANGUAGE_KOREAN: - case RETRO_LANGUAGE_VIETNAMESE: - case RETRO_LANGUAGE_GREEK: - case RETRO_LANGUAGE_TURKISH: - case RETRO_LANGUAGE_CATALAN_VALENCIA: - case RETRO_LANGUAGE_UKRAINIAN: - case RETRO_LANGUAGE_SLOVAK: - case RETRO_LANGUAGE_PERSIAN: - case RETRO_LANGUAGE_ESPERANTO: - case RETRO_LANGUAGE_BRITISH_ENGLISH: - case RETRO_LANGUAGE_CATALAN: - case RETRO_LANGUAGE_CZECH: - case RETRO_LANGUAGE_HEBREW: - case RETRO_LANGUAGE_HUNGARIAN: - case RETRO_LANGUAGE_ARABIC: - case RETRO_LANGUAGE_ASTURIAN: - case RETRO_LANGUAGE_FINNISH: - case RETRO_LANGUAGE_INDONESIAN: - case RETRO_LANGUAGE_SWEDISH: - case RETRO_LANGUAGE_FRENCH: - case RETRO_LANGUAGE_GERMAN: - case RETRO_LANGUAGE_SPANISH: - case RETRO_LANGUAGE_ITALIAN: - case RETRO_LANGUAGE_DUTCH: - case RETRO_LANGUAGE_POLISH: - case RETRO_LANGUAGE_CHINESE_TRADITIONAL: - default: - break; - } -#endif - - if (ret == 0) - return ret; - return msg_hash_get_help_us_enum(msg, s, len); } @@ -521,22 +474,30 @@ static const char *msg_hash_to_str_vn(enum msg_hash_enums msg) return "null"; } - - -static const char *msg_hash_get_wideglyph_str_cht(void) +static const char *msg_hash_to_str_chs(enum msg_hash_enums msg) { - return "主"; -} + switch (msg) + { +#include "intl/msg_hash_chs.h" + default: + break; + } -static const char *msg_hash_get_wideglyph_str_jp(void) -{ - return "漢"; + return "null"; } -static const char *msg_hash_get_wideglyph_str_ko(void) +static const char *msg_hash_to_str_pt_br(enum msg_hash_enums msg) { - return "메"; + switch (msg) + { +#include "intl/msg_hash_pt_br.h" + default: + break; + } + + return "null"; } + #endif const char *msg_hash_to_str(enum msg_hash_enums msg) @@ -928,13 +889,13 @@ const char *msg_hash_get_wideglyph_str(void) switch (uint_user_language) { case RETRO_LANGUAGE_CHINESE_SIMPLIFIED: - return msg_hash_get_wideglyph_str_chs(); + return "菜"; case RETRO_LANGUAGE_CHINESE_TRADITIONAL: - return msg_hash_get_wideglyph_str_cht(); + return "主"; case RETRO_LANGUAGE_JAPANESE: - return msg_hash_get_wideglyph_str_jp(); + return "漢"; case RETRO_LANGUAGE_KOREAN: - return msg_hash_get_wideglyph_str_ko(); + return "메"; default: break; } diff --git a/msg_hash.h b/msg_hash.h index 72b7a4c1d27..f84f4c41fb5 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -4044,12 +4044,6 @@ enum msg_hash_enums const char *msg_hash_to_str(enum msg_hash_enums msg); -const char *msg_hash_to_str_pt_br(enum msg_hash_enums msg); -int msg_hash_get_help_pt_br_enum(enum msg_hash_enums msg, char *s, size_t len); - -const char *msg_hash_to_str_chs(enum msg_hash_enums msg); -int msg_hash_get_help_chs_enum(enum msg_hash_enums msg, char *s, size_t len); - const char *msg_hash_to_str_us(enum msg_hash_enums msg); int msg_hash_get_help_us_enum(enum msg_hash_enums msg, char *s, size_t len); @@ -4087,7 +4081,6 @@ void msg_hash_set_uint(enum msg_hash_action type, unsigned val); * be found by passing said pointer to the current font * rendering implementation */ const char *msg_hash_get_wideglyph_str(void); -const char *msg_hash_get_wideglyph_str_chs(void); uint32_t msg_hash_calculate(const char *s);