Files
NX2navi/runtime/ui_text.c
chrg6 1e8045b36b Bring the tone mapped HDR picture's settings back to the menu, with defaults that give the look it had while it was fixed.
The sixteen settings the fixed look took away are settings again: the tone mapper choice, gamma correction, mid grey, match tone slope, tone slope, hue clip emulation, exposure, highlights, shadows, contrast, saturation, highlight saturation, blowout, flare, hue correction and colour grading. They have their rows in the settings table with the defaults and ranges they had, their rows in the Screen tab under HDR output's three brightness rows (none of them with the game's own HDR), their texts in the four languages, and their lines in the example ini. The tonemap library has the luminance mapper and the grading of the observer-response mapper again, and the support buffer carries five vec4 for it.

A player who changes nothing sees the picture as before. The observer-response mapper leaves each grading step out when its value is 1, and the slider values are divided, not multiplied by a rounded reciprocal, so 50 and 100 % arrive as exactly 1. Evaluated on the CPU in single precision, the shader with every default gave the same bits as the fixed one for 400,000 random scene colours, gains and whites, in HDR and for the SDR picture; the luminance mapper and the game's curve gave the same bits as before they were removed, and the observer-response mapper with its sliders moved stayed within 0.004 % of the pixel of its old result.

Gamma correction now counts with every tone mapper, 2.2 by default, which is what gave the fixed look its true blacks; before the fixed look it ran with the luminance mapper only and the other two showed the dark tones far above black. Its off value brings that lighter picture back for a player who asks for it. The game's own HDR does not take the setting and stays at 2.2.

Lines for these settings that an nx2navi.ini still holds from before the fixed look count again; the example ini and the release notes say so. Nothing of this was seen in the game.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-14 08:35:47 -05:00

2701 lines
223 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Catalog of the text the host shows the player (ui_text.h). One array per catalog language, indexed by UiTextId: a new
// string gets an id in ui_text.h and an entry in every language that has one (a missing entry falls back to English).
// The software keyboard has every language; the menu has English, Russian, Brazilian Portuguese and Simplified
// Chinese.
#include <stdatomic.h>
#include <string.h>
#include "cfg.h"
#include "ov.h"
#include "platform/platform.h"
#include "ui_text.h"
typedef struct { const char *lang; const char *const *text; } Row;
// The language names are the same in every row.
#define LANG_NAMES \
[UI_MENU_LANGNAME_EN] = "English", [UI_MENU_LANGNAME_JA] = "日本語", [UI_MENU_LANGNAME_FR] = "Français", \
[UI_MENU_LANGNAME_DE] = "Deutsch", [UI_MENU_LANGNAME_IT] = "Italiano", [UI_MENU_LANGNAME_ES] = "Español", \
[UI_MENU_LANGNAME_NL] = "Nederlands", [UI_MENU_LANGNAME_RU] = "Русский", \
[UI_MENU_LANGNAME_ZH_HANS] = "简体中文", [UI_MENU_LANGNAME_ZH_HANT] = "繁體中文", [UI_MENU_LANGNAME_KO] = "한국어", \
[UI_MENU_LANGNAME_PT_BR] = "Português (Brasil)", [UI_MENU_LANGNAME_EN_GB] = "English (UK)", \
[UI_MENU_LANGNAME_FR_CA] = "Français (Canada)", [UI_MENU_LANGNAME_ES_419] = "Español (Latinoamérica)", \
[UI_MENU_LANGNAME_PL] = "Polski"
// SWKBD: TITLE, PROMPT, DEFAULT_NAME (at most 9 UTF-16 units, no '@' '%' '\'), OK, CANCEL, PAD_HINT.
#define SWKBD(title, prompt, name, ok, cancel, hint) \
[UI_SWKBD_TITLE] = title, [UI_SWKBD_PROMPT] = prompt, [UI_SWKBD_DEFAULT_NAME] = name, [UI_SWKBD_OK] = ok, \
[UI_SWKBD_CANCEL] = cancel, [UI_SWKBD_PAD_HINT] = hint, LANG_NAMES
// The DLSS model file and the executable, as the player sees them on this platform.
#ifdef _WIN32
#define DLSS_FILE "nvngx_dlss.dll"
#define EXE_FILE "nx2navi.exe"
#else
#define DLSS_FILE "libnvidia-ngx-dlss.so"
#define EXE_FILE "nx2navi"
#endif
static const char *const text_en[UI_TEXT_COUNT] = {
SWKBD("Text entry", "Enter a name", "Horse", "OK", "Cancel", "Controller: A = OK, B = Cancel"),
[UI_MENU_TITLE] = "Settings",
[UI_MENU_TAB_SCREEN] = "Screen", [UI_MENU_TAB_GAME] = "Game", [UI_MENU_TAB_MODS] = "Mods", [UI_MENU_TAB_SOUND] = "Sound",
[UI_MENU_TAB_CONTROLS] = "Controls", [UI_MENU_TAB_AMIIBO] = "Amiibo", [UI_MENU_TAB_MENU] = "Menu", [UI_MENU_TAB_ADVANCED] = "Advanced",
[UI_MENU_CONTINUE] = "Continue", [UI_MENU_QUIT] = "Quit game",
[UI_MENU_ON] = "On", [UI_MENU_OFF] = "Off", [UI_MENU_AUTO] = "Automatic", [UI_MENU_DEFAULT_MARK] = "default",
[UI_MENU_AFTER_RESTART] = "after restart", [UI_MENU_SET_BY_ENV] = "set by environment variable",
[UI_MENU_SAVE_FAILED] = "could not save settings",
[UI_MENU_INI_UNKNOWN] = "nx2navi.ini: not settings of this version, ignored: %s",
[UI_MENU_VERSION] = "NX2navi %s, game %s",
[UI_MENU_FULLSCREEN] = "Fullscreen", [UI_MENU_FULLSCREEN_DESC] = "Play in fullscreen. F11 switches it.",
[UI_MENU_WINDOW_SIZE] = "Window size", [UI_MENU_WINDOW_SIZE_DESC] = "Window size outside fullscreen.",
[UI_MENU_WINDOW_SIZE_CUSTOM] = "Custom",
[UI_MENU_PRESENT_DESC] = "Stops screen tearing. Off lowers input delay slightly.",
[UI_MENU_PRESENT_MAILBOX] = "Mailbox", [UI_MENU_PRESENT_VSYNC] = "VSync", [UI_MENU_PRESENT_IMMEDIATE] = "Immediate",
[UI_MENU_PRESENT_IN_USE] = "in use: %s",
[UI_MENU_LOW_LATENCY] = "Low latency",
[UI_MENU_LOW_LATENCY_DESC] = "The graphics driver holds each frame's start, so the controller is read as late as "
"possible (NVIDIA Reflex, AMD Anti-Lag). It keeps the frame rate limit too. Boost "
"keeps the graphics card at full clock.",
[UI_MENU_LOW_LATENCY_BOOST] = "On + Boost",
[UI_MENU_LOW_LATENCY_NO_DRIVER] = "this graphics driver has no low-latency mode",
[UI_MENU_LOW_LATENCY_DLSSG] = "DLSS frame generation uses its own",
[UI_MENU_LOW_LATENCY_FG] = "off while frame generation runs on this card",
[UI_MENU_LOW_LATENCY_FAILED] = "in use: off, the driver refused it (see lowlat in the log)",
[UI_MENU_GPU] = "Graphics card", [UI_MENU_GPU_DESC] = "The graphics card that runs the game.",
[UI_MENU_GPU_AUTO] = "Automatic",
[UI_MENU_PERF_OVERLAY] = "Performance overlay",
[UI_MENU_PERF_OVERLAY_DESC] = "Shows frame rate and system stats. F10 switches modes.",
[UI_MENU_PERF_OFF] = "Off", [UI_MENU_PERF_FPS] = "FPS", [UI_MENU_PERF_FULL] = "Full",
// printf format of the overlay line in FPS mode: the frame rate
[UI_PERF_LINE_FPS] = "%.0f fps",
[UI_MENU_GRAPHICS] = "Picture",
[UI_MENU_OUTPUT_RES] = "Game resolution",
[UI_MENU_OUTPUT_RES_DESC] = "The resolution the game draws at. Higher needs a stronger GPU.",
[UI_MENU_RENDER_SCALE] = "3D render scale",
[UI_MENU_RENDER_SCALE_DESC] = "Size of the 3D scene. Higher is sharper but slower.",
[UI_MENU_RENDER_SCALE_GAME] = "Game (83 %)",
[UI_MENU_UPSCALER] = "Scaling to the window",
[UI_MENU_UPSCALER_DESC] = "How the game's picture is fitted to the window. Larger window: FSR keeps edges and detail "
"sharper than bilinear. Smaller window (Ocarina draws 2560 x 1440): the picture is shrunk "
"and FSR sharpens it by the strength below.",
[UI_MENU_UPSCALER_FSR] = "AMD FSR 1", [UI_MENU_UPSCALER_BILINEAR] = "Bilinear",
[UI_MENU_UPSCALING_NATIVE] = "Native (100%)",
[UI_MENU_GAME_ASPECT] = "Widescreen",
[UI_MENU_GAME_ASPECT_DESC] = "Widens the view. HUD and menus stay 16:9.",
[UI_MENU_GAME_ASPECT_16_9] = "16:9 (the game's)", [UI_MENU_GAME_ASPECT_WINDOW] = "Window shape",
[UI_MENU_GAME_ASPECT_21_9] = "21:9", [UI_MENU_GAME_ASPECT_32_9] = "32:9",
[UI_MENU_FOV] = "Field of view",
[UI_MENU_FOV_DESC] = "How much of the world the camera shows, in percent of the game's own. Game version 1.4.3 only.",
[UI_MENU_SHADOW_RES] = "Shadow map size",
[UI_MENU_SHADOW_RES_DESC] = "Shadow detail. Higher costs more GPU power.",
[UI_MENU_SHADOW_RES_GAME] = "Game (changes)",
[UI_MENU_ANISO] = "Texture filtering",
[UI_MENU_ANISO_DESC] = "Anisotropic filtering of surface textures: ground, roads and walls seen at a shallow angle stay sharp into the distance instead of blurring. Game: the level the game asks for, as on the Switch.",
[UI_MENU_ANISO_GAME] = "Game",
[UI_MENU_TEX_DETAIL] = "Texture detail",
[UI_MENU_TEX_DETAIL_DESC] = "Sharpness of large surface textures. Reduced and Low leave out their largest versions, so that an area fits the video memory of 6 and 8 GB cards; only surfaces seen up close look softer. Automatic picks by the card's video memory.",
[UI_MENU_TEX_DETAIL_AUTO] = "Automatic: %s",
[UI_MENU_TEX_DETAIL_FULL] = "Full", [UI_MENU_TEX_DETAIL_REDUCED] = "Reduced", [UI_MENU_TEX_DETAIL_LOW] = "Low",
[UI_MENU_SHARPNESS] = "FSR sharpness",
[UI_MENU_SHARPNESS_DESC] = "How sharp FSR makes the picture. 0 turns it off.",
[UI_MENU_SHARPNESS_NEEDS_FSR] = "only with AMD FSR 1 or FSR 3.1",
[UI_MENU_COLOR] = "Colour",
[UI_MENU_COLOR_PRESET] = "Colour profile",
[UI_MENU_COLOR_PRESET_DESC] = "Sets the four values below. Vivid: more contrast and saturation, shadows opened a "
"little (made for OLED screens). Clarity: a little more contrast, saturation and "
"brightness. Moving a value makes the profile Custom. The HUD changes with the picture; "
"this menu does not.",
[UI_MENU_COLOR_DEFAULT] = "Game's own", [UI_MENU_COLOR_VIVID] = "Vivid (OLED)", [UI_MENU_COLOR_CLARITY] = "Clarity",
[UI_MENU_COLOR_CUSTOM] = "Custom",
[UI_MENU_COLOR_BRIGHTNESS] = "Brightness", [UI_MENU_COLOR_BRIGHTNESS_DESC] = "Added to every colour; 0 leaves it.",
[UI_MENU_COLOR_CONTRAST] = "Contrast",
[UI_MENU_COLOR_CONTRAST_DESC] = "Spreads colours away from mid-grey (above 100 %) or towards it; 100 % leaves them.",
[UI_MENU_COLOR_SATURATION] = "Saturation",
[UI_MENU_COLOR_SATURATION_DESC] = "Colour strength against grey; 100 % leaves it.",
[UI_MENU_COLOR_GAMMA] = "Gamma",
[UI_MENU_COLOR_GAMMA_DESC] = "Below 1 brightens dark and middle tones, above 1 darkens them; 1 leaves them.",
[UI_MENU_HDR_GROUP] = "HDR",
[UI_MENU_HDR] = "HDR output",
[UI_MENU_HDR_DESC] = "Brighter highlights on an HDR display. Turn on HDR in Windows first.",
[UI_MENU_HDR_PEAK] = "Peak brightness",
[UI_MENU_HDR_PEAK_DESC] = "Your display's peak brightness in nits.",
[UI_MENU_HDR_GAME] = "Game brightness",
[UI_MENU_HDR_GAME_DESC] = "Brightness of white in the game, in nits.",
[UI_MENU_HDR_UI] = "HUD and menu brightness",
[UI_MENU_HDR_UI_DESC] = "Brightness of the HUD and this menu, in nits.",
[UI_MENU_HDR_HUE] = "Hue correction",
[UI_MENU_HDR_HUE_DESC] = "How much bright colours keep the hue they have before the tone mapper; 0 lets them shift "
"as the curve takes them.",
[UI_MENU_HDR_GAMMA] = "Gamma correction",
[UI_MENU_HDR_GAMMA_DESC] = "Shows the picture as a 2.2 or BT.1886 (2.4) display would, as the game was made to be "
"seen; Off keeps the sRGB curve, with lighter shadows.",
[UI_MENU_HDR_TONEMAP] = "Tone mapper",
[UI_MENU_HDR_TONEMAP_DESC] = "Vanilla: the game's own curve at SDR brightness. PsychoV35: the scene through a model "
"of the eye's response, matched to the game's mid grey and tone, up to your display's "
"peak. RenoDRT: the game's SDR look carried up to the peak by brightness.",
[UI_MENU_HDR_EXPOSURE] = "Exposure",
[UI_MENU_HDR_EXPOSURE_DESC] = "Brightness of the whole picture before the tone mapper; 100 % leaves it unchanged.",
[UI_MENU_HDR_HIGHLIGHTS] = "Highlights",
[UI_MENU_HDR_HIGHLIGHTS_DESC] = "Brightness of the bright parts; 50 leaves them unchanged.",
[UI_MENU_HDR_SHADOWS] = "Shadows",
[UI_MENU_HDR_SHADOWS_DESC] = "Brightness of the dark parts; 50 leaves them unchanged.",
[UI_MENU_HDR_CONTRAST] = "Contrast",
[UI_MENU_HDR_CONTRAST_DESC] = "Contrast around mid grey; 50 leaves it unchanged.",
[UI_MENU_HDR_SATURATION] = "Saturation",
[UI_MENU_HDR_SATURATION_DESC] = "Strength of all colours; 50 leaves it unchanged.",
[UI_MENU_HDR_HIGHLIGHT_SAT] = "Highlight saturation",
[UI_MENU_HDR_HIGHLIGHT_SAT_DESC] = "Strength of the colours of the brightest parts; 50 leaves it unchanged.",
[UI_MENU_HDR_BLOWOUT] = "Blowout",
[UI_MENU_HDR_BLOWOUT_DESC] = "Turns the brightest parts towards white; 0 keeps their colour.",
[UI_MENU_HDR_FLARE] = "Flare",
[UI_MENU_HDR_FLARE_DESC] = "Lifts the darkest parts as a little stray light would; 0 keeps black black.",
[UI_MENU_HDR_GRADE] = "Colour grading",
[UI_MENU_HDR_GRADE_DESC] = "How much of the game's own colour grading the HDR picture keeps; 0 is the scene without it.",
[UI_MENU_HDR_MIDGRAY] = "Mid grey",
[UI_MENU_HDR_MIDGRAY_DESC] = "Where the scene's mid grey lands. Vanilla: where the game's own curve puts it. Render: "
"at the scene's value, a little darker.",
[UI_MENU_HDR_MATCH_SLOPE] = "Match tone slope",
[UI_MENU_HDR_MATCH_SLOPE_DESC] = "Gives the mid tones the contrast of the game's own curve.",
[UI_MENU_HDR_TONE_SLOPE] = "Tone slope",
[UI_MENU_HDR_TONE_SLOPE_DESC] = "Steepness of the tone curve through mid grey; 50 leaves it unchanged.",
[UI_MENU_HDR_HUE_CLIP] = "Hue clip emulation",
[UI_MENU_HDR_HUE_CLIP_DESC] = "How much bright colours turn as they do where the game's SDR picture clips: fire "
"towards yellow and white. 0 keeps their hue.",
[UI_MENU_SHADOW_SCALE] = "Shadow resolution",
[UI_MENU_SHADOW_SCALE_DESC] = "Sharper shadows. Higher costs more GPU power.",
[UI_MENU_PCSS] = "Soft shadows",
[UI_MENU_PCSS_DESC] = "Sun shadows sharp where an object meets the ground and softer the further the shadow falls "
"(PCSS). 0 keeps the game's filter. Takes effect at the next start.",
[UI_MENU_CONTACT_SHADOWS] = "Contact shadows",
[UI_MENU_CONTACT_SHADOWS_DESC] = "Small sun shadows the shadow maps miss: at feet, under stones, in grass and creases. "
"Traced on the screen after lighting. Takes effect at the next start.",
[UI_MENU_SHADOW_RANGE] = "Shadow cascade range",
[UI_MENU_SHADOW_RANGE_DESC] = "Keeps shadows sharp further away.",
[UI_MENU_DLAA] = "NVIDIA DLSS / DLAA",
[UI_MENU_DLAA_DESC] = "NVIDIA DLSS for the 3D scene (NVIDIA RTX GPUs; " DLSS_FILE " next to " EXE_FILE "): smoother "
"edges and less shimmer. The HUD is not touched. The mode below sets the resolution it works "
"from. Takes effect after a restart.",
[UI_MENU_DLSS_PRESET] = "DLSS model",
[UI_MENU_DLSS_PRESET_DESC] = "Which DLSS model runs. Automatic follows NVIDIA's advice per mode: K for DLAA, Quality "
"and Balanced, M for Performance, L for Ultra Performance. J: slightly less ghosting "
"behind moving characters, a little more flicker. K: the sharpest model in every mode. "
"Applies at once.",
[UI_MENU_DLSS_PRESET_DEFAULT] = "Automatic", [UI_MENU_DLSS_PRESET_K] = "K (sharpest)",
[UI_MENU_DLSS_PRESET_J] = "J (less ghosting)",
[UI_MENU_DLSS_CHARS] = "DLSS character trails",
[UI_MENU_DLSS_CHARS_DESC] = "Reduces the faint trails behind moving characters, animals and what they hold: DLSS takes "
"less of the previous frames there. Stronger removes more of the trails and leaves those "
"edges a little less smooth. Applies at once.",
[UI_MENU_DLSS_CHARS_OFF] = "Off", [UI_MENU_DLSS_CHARS_LIGHT] = "Light", [UI_MENU_DLSS_CHARS_MEDIUM] = "Medium",
[UI_MENU_DLSS_CHARS_FULL] = "Full",
[UI_MENU_DLSS] = "DLSS mode",
[UI_MENU_DLSS_DESC] = "DLAA draws the 3D scene at full resolution. Quality, Balanced, Performance and Ultra "
"Performance draw it at 67, 58, 50 and 33 % and let DLSS scale it up, which saves GPU time; "
"they replace the 3D render scale. Takes effect at once.",
[UI_MENU_DLSS_DLAA] = "DLAA (native)", [UI_MENU_FSR3_NATIVE] = "Native AA", [UI_MENU_DLSS_QUALITY] = "Quality", [UI_MENU_DLSS_BALANCED] = "Balanced",
[UI_MENU_DLSS_PERFORMANCE] = "Performance", [UI_MENU_DLSS_ULTRA] = "Ultra Performance",
[UI_MENU_FXAA] = "Game anti-aliasing (FXAA)",
[UI_MENU_FXAA_DESC] = "The game's own FXAA edge smoothing. It blurs fine detail a little; with DLAA on it is not needed.",
[UI_MENU_AA] = "Anti-aliasing",
[UI_MENU_AA_DESC] = "How the edges of the 3D picture are smoothed. Game SMAA is the game's own, as on the console. Off "
"leaves the edges as drawn. FXAA is quick and a little soft. SMAA finds more of the edges than the "
"game's and keeps detail sharp. TAA is DLSS or FSR at full size: the steadiest edges in motion; it "
"sets the upscaler. With DLSS or FSR set under Upscaling their TAA always runs, and the "
"choice here runs along with it. Takes effect at once.",
[UI_MENU_AA_GAME] = "Game SMAA",
[UI_MENU_AA_FXAA] = "FXAA",
[UI_MENU_AA_SMAA] = "SMAA (Ultra)",
[UI_MENU_AA_TAA_DLSS] = "TAA (NVIDIA DLAA)",
[UI_MENU_AA_TAA_FSR] = "TAA (AMD FSR 3.1)",
[UI_MENU_AA_TAA_FSR4] = "TAA (%s)", // FSR 4's name as the Upscaling row gives it ("AMD FSR 4.1")
[UI_MENU_AA_WITH_TAA] = "plus TAA from Upscaling",
[UI_MENU_FPS_LIMIT] = "Frame rate limit",
[UI_MENU_FPS_LIMIT_DESC] = "The highest frame rate the game draws at. Frame generation adds its frames on top.",
[UI_MENU_FPS_30] = "30 FPS", [UI_MENU_FPS_40] = "40 FPS", [UI_MENU_FPS_45] = "45 FPS",
[UI_MENU_FPS_60] = "60 FPS", [UI_MENU_FPS_90] = "90 FPS", [UI_MENU_FPS_120] = "120 FPS", [UI_MENU_FPS_144] = "144 FPS",
// the monitor's refresh rate; printf format with the rate in Hz when it is known
[UI_MENU_FPS_DISPLAY] = "Monitor rate", [UI_MENU_FPS_DISPLAY_HZ] = "Monitor rate (%.0f Hz)",
[UI_MENU_FPS_UNLIMITED] = "Unlimited",
// notes under the frame rate value: RivaTuner Statistics Server (rtss_limit.c) limits the game, or cannot
[UI_MENU_FPS_RTSS] = "limited by RivaTuner Statistics Server",
[UI_MENU_FPS_RTSS_READONLY] = "RivaTuner needs the game run as administrator",
[UI_MENU_FPS_RTSS_IGNORED] = "RivaTuner does not limit this game; the game does",
[UI_MENU_FPS_RTSS_TWO] = "RivaTuner's own limit also applies: two limiters",
[UI_MENU_REALTIME] = "Game speed follows the clock",
[UI_MENU_REALTIME_DESC] = "Steps the game by real time, so a slow frame does not slow the game down.",
[UI_MENU_CLOTH_REALTIME] = "Cloth on the clock",
[UI_MENU_CLOTH_REALTIME_DESC] = "Steps cloth and hair by real time as well.",
[UI_MENU_HIGHFPS_FIX] = "High frame rate fixes",
[UI_MENU_HIGHFPS_FIX_DESC] = "Corrects physics that misbehave above 30 frames per second, and objects that stay see-through or invisible above 60.",
[UI_MENU_GAME_LANG] = "Game language", [UI_MENU_GAME_LANG_DESC] = "Language of the game's text and voices.",
[UI_MENU_GAME_LANG_AUTO] = "Automatic",
[UI_MENU_OPERATION_MODE] = "Console mode",
[UI_MENU_OPERATION_MODE_DESC] = "Runs the game as docked or handheld.",
[UI_MENU_MODE_DOCKED] = "Docked", [UI_MENU_MODE_HANDHELD] = "Handheld",
[UI_MENU_ASSUME_FOCUS] = "Keep running out of focus",
[UI_MENU_ASSUME_FOCUS_DESC] = "Keeps the game running when you switch to another window.",
[UI_MENU_TEXT_SPEED] = "Text speed",
[UI_MENU_TEXT_SPEED_DESC] = "How fast the game's message windows show their text. Fast types three times as fast; "
"instant shows each page at once. Text the game does not let you hurry, such as "
"lines timed to a cutscene or a voice, keeps its speed.",
[UI_MENU_TEXT_SPEED_NORMAL] = "Normal", [UI_MENU_TEXT_SPEED_FAST] = "Fast",
[UI_MENU_TEXT_SPEED_INSTANT] = "Instant",
[UI_MENU_MODS_BUILTIN] = "Built into the port", [UI_MENU_MODS_INSTALLED] = "Installed mods",
[UI_MENU_MODS_NONE] = "No mods yet. Unpack a mod into the mods folder, one folder per mod with its romfs folder "
"inside, and restart the game. A mod manager can export its merged mods into a folder there too.",
[UI_MENU_MODS_OPEN] = "Open mods folder",
[UI_MENU_MODS_OPEN_DESC] = "Shows the folder the game loads mods from. It is created if it is missing.",
[UI_MENU_MODS_ROW_DESC] = "Game files it replaces: %u. New files it adds: %u.",
[UI_MENU_MODS_OVERRIDDEN] = "%u of its files come from %s, which is higher in the list.",
[UI_MENU_MODS_MOVE_HINT] = "The top face button or Ctrl+Up moves it up, the left face button or Ctrl+Down moves it "
"down. When two mods change the same file, the higher one wins. Changes apply after a "
"restart.",
[UI_MENU_MODS_EMPTY] = "This folder has no romfs, exefs or cheats files.",
[UI_MENU_MODS_SUBSDK] = "This mod brings its own game code (a subsdk plugin or a replaced main). The port cannot "
"load code modules, so the whole mod stays off.",
[UI_MENU_MODS_EXEFS_LATER] = "This mod patches the game code (exefs). The game builds the patches in when it "
"starts next (a rebuild of a few minutes); until then the whole mod stays off.",
[UI_MENU_MODS_CHEATS] = "Cheats: %d. Switch them on the Cheats tab.",
[UI_MENU_MODS_CHEATS_FILE] = "Cheats for this game version are read at start from cheats\\%s in this mod.",
[UI_MENU_MODS_BAD_NAME] = "The folder name contains |, which the mod list uses between names. Rename the folder.",
[UI_MENU_MODS_OTHER_VERSION] = "%u of its files are made for another game version and are left out. Look for a "
"version of this mod made for your game version.",
[UI_MENU_MODS_UNUSED] = "not used",
[UI_MENU_MODS_FPS60] = "60 FPS patch",
[UI_MENU_MODS_FPS60_DESC] = "The port's own patch for 60 frames per second. Set it with Frame rate limit on the "
"Game tab.",
[UI_MENU_MODS_RES] = "Resolution patch",
[UI_MENU_MODS_RES_DESC] = "The port's own patch for resolutions above 1080p. Set it with Game resolution on the "
"Screen tab.",
[UI_MENU_MODS_QUICKMENU] = "Quick menu fix",
[UI_MENU_MODS_QUICKMENU_DESC] = "The port's fix for the black background of the weapon, shield and material menus "
"at 60 FPS.",
[UI_MENU_VOLUME] = "Volume", [UI_MENU_VOLUME_DESC] = "Overall game volume.", [UI_MENU_MENU_SOUNDS] = "Menu sounds", [UI_MENU_MENU_SOUNDS_DESC] = "Volume of this menu's sounds.",
[UI_MENU_AUDIO_CHANNELS] = "Speakers",
[UI_MENU_AUDIO_CHANNELS_DESC] = "Stereo or 5.1 surround sound.",
[UI_MENU_CHANNELS_AUTO] = "Automatic", [UI_MENU_CHANNELS_STEREO] = "Stereo", [UI_MENU_CHANNELS_51] = "5.1 surround",
[UI_MENU_MOTION] = "Motion controls", [UI_MENU_MOTION_DESC] = "Aim with the controller's gyro.",
[UI_MENU_SPRINT_BUTTON] = "Sprint button",
[UI_MENU_SPRINT_BUTTON_DESC] = "A button that makes Link sprint without rolling first. L3, the left stick's "
"click, has no other use. The game's B button sprints only while Link moves and "
"puts the weapon away as usual otherwise; with the game's Swap Jump Controls on, B "
"is the jump, so use L3.",
[UI_MENU_SPRINT_OFF] = "Off", [UI_MENU_SPRINT_B] = "The game's B button",
[UI_MENU_SPRINT_L3] = "L3 (left stick)",
[UI_MENU_SPRINT_MODE] = "Sprint mode",
[UI_MENU_SPRINT_MODE_DESC] = "Toggle: press once to sprint and again to stop. The sprint goes on through jumps "
"and ends when Link stops, attacks, rolls, targets, uses an item, swims or climbs. "
"Hold: Link sprints while the button is held.",
[UI_MENU_SPRINT_TOGGLE] = "Toggle", [UI_MENU_SPRINT_HOLD] = "Hold",
[UI_MENU_RUMBLE_STRENGTH] = "Vibration strength",
[UI_MENU_RUMBLE_STRENGTH_DESC] = "How strong the vibration is.",
[UI_MENU_RUMBLE_CURVE] = "Vibration curve",
[UI_MENU_RUMBLE_CURVE_DESC] = "Lower values make light vibration stronger.",
[UI_MENU_RUMBLE_TRIGGERS] = "Trigger vibration (Xbox)",
[UI_MENU_RUMBLE_TRIGGERS_DESC] = "Also vibrates the triggers on Xbox controllers.",
[UI_MENU_RUMBLE_HD] = "HD vibration (Switch)",
[UI_MENU_RUMBLE_HD_DESC] = "Sends the game's detailed vibration to a Switch Pro Controller or Joy-Con as it is. "
"The vibration strength still applies: its default is the game's own.",
[UI_MENU_RUMBLE_HD_NEEDS] = "Needs a Switch Pro Controller or Joy-Con",
[UI_MENU_PAD_LAYOUT] = "Button layout",
[UI_MENU_PAD_LAYOUT_DESC] = "Sets which button acts as A. Nintendo: by position, A right, B bottom, X top, Y "
"left. Xbox and PlayStation: by label, A bottom, B right, X left, Y top (on a "
"PlayStation pad cross, circle, square and triangle). Automatic: Nintendo for a pad "
"labelled the Nintendo way, by label for the others.",
[UI_MENU_PAD_LAYOUT_AUTO] = "Automatic", [UI_MENU_PAD_LAYOUT_NINTENDO] = "Nintendo (A right)",
[UI_MENU_PAD_LAYOUT_XBOX] = "Xbox (A bottom)", [UI_MENU_PAD_LAYOUT_PLAYSTATION] = "PlayStation (A bottom)",
[UI_MENU_PAD_LAYOUT_IN_USE] = "in use: %s",
[UI_MENU_PROMPTS] = "Button prompts",
[UI_MENU_PROMPTS_DESC] = "Which buttons the game's prompts show, in text, in the action prompt and on the "
"ocarina's notes. Nintendo: the game's own. Xbox, PlayStation and Steam Deck: that pad's "
"buttons (LB, RB, LT, RT, Menu, View; L1, R1, L2, R2, Options, Create; the Deck's A, B, X, "
"Y with L1, R1, L2, R2, Menu, View), and A, B, X and Y as the "
"button the layout above presses (with Nintendo (A right) the right button does A, so the "
"prompts for A show B, or circle). Keyboard and mouse: the key each button has (E, Ctrl, "
"Space, left click...), WASD for moving and the mouse for the camera. The prompt files "
"are made from button art with tools/pad_prompts.py, the keys as nx2navi.ini binds them "
"when it runs. The game reads its prompts at start, so they change after a restart. They "
"are part of the game's files, so a button you remap in Controls keeps its old prompt on "
"screen until the files are made again.",
[UI_MENU_PROMPTS_NINTENDO] = "Nintendo", [UI_MENU_PROMPTS_XBOX] = "Xbox",
[UI_MENU_PROMPTS_PLAYSTATION] = "PlayStation", [UI_MENU_PROMPTS_STEAMDECK] = "Steam Deck",
[UI_MENU_PROMPTS_PC] = "Keyboard and mouse",
[UI_MENU_PROMPTS_MISSING] = "prompt files missing: tools/pad_prompts.py makes them",
[UI_MENU_PROMPTS_FAILED] = "prompt files damaged: make them again with tools/pad_prompts.py",
[UI_MENU_PROMPTS_RESTART] = "prompts change after restart",
[UI_MENU_PROMPTS_OFF_SHAPE] = "off at a game resolution not 16:9",
[UI_MENU_PROMPTS_OFF_MODS] = "off: a RomFS mod replaces their files",
[UI_MENU_PROMPTS_OFF_PATCHES] = "off while NX2NAVI_ROMFS_PATCHES is set",
[UI_MENU_RESTART] = "Restart now",
[UI_MENU_RESTART_DESC] = "Closes the game and starts it again with the new prompts. Progress since your last save "
"is lost.",
[UI_MENU_RESTART_CONFIRM] = "Restart the game now? Progress since your last save is lost.",
[UI_MENU_QUIT_CONFIRM] = "Quit the game? Progress since your last save is lost.",
[UI_MENU_RESTART_YES] = "Restart",
[UI_MENU_RESTART_COUNT] = "Restart (%d)",
[UI_MENU_RESTART_SAVING] = "The game is saving: Restart is possible in a moment.",
[UI_MENU_QUIT_SAVING] = "The game is saving: Quit is possible in a moment.",
[UI_MENU_GROUP_STICKS] = "Analog sticks",
[UI_MENU_LSTICK_DEADZONE] = "Left stick dead zone", [UI_MENU_RSTICK_DEADZONE] = "Right stick dead zone",
[UI_MENU_STICK_DEADZONE_DESC] = "How far a stick must move to register. Raise it if a stick drifts.",
[UI_MENU_STICK_DEADZONE_NOW] = "stick now: %.0f %%",
[UI_MENU_MOUSE_MODE] = "Mouse camera",
[UI_MENU_MOUSE_MODE_DESC] = "Direct: the camera turns by how far the mouse moves, as in a PC game, with no stick dead zone or curve (games 1.1.1 and 1.4.3; other versions use stick emulation). Stick emulation: the mouse acts as the right stick.",
[UI_MENU_MOUSE_STICK] = "Stick emulation",
[UI_MENU_MOUSE_DIRECT] = "Direct",
[UI_MENU_MENU_CURSOR] = "Mouse in the game's menus",
[UI_MENU_MENU_CURSOR_DESC] = "In the game's own menus (title, inventory, shops, dialogue choices) the pointer shows: the item under it is selected, left click confirms, right click goes back. Only after the mouse or a key was used last, so a gamepad sees the menus unchanged (game 1.4.3).",
[UI_MENU_MOUSE_SENS] = "Mouse camera sensitivity",
[UI_MENU_MOUSE_SENS_DESC] = "How fast the mouse turns the camera.",
[UI_MENU_WALK_KEY] = "Walk key",
[UI_MENU_WALK_KEY_DESC] = "Hold to walk on the keyboard.",
[UI_MENU_WALK_KEY_TAKEN] = "also %s",
[UI_MENU_WALK_SCALE] = "Walk scale",
[UI_MENU_WALK_SCALE_DESC] = "The tilt the keyboard's sticks get while the walk key is held. Half is a walk, the "
"full tilt a run.",
[UI_MENU_STICK_SENS] = "Stick camera speed",
[UI_MENU_STICK_SENS_DESC] = "Right stick camera speed.",
[UI_BINDS_HELP] = "Select a cell and press A or Enter, then the key, mouse button or controller button. Delete or "
"X clears a cell. A key in use moves here; a controller button swaps with the one it replaces.",
[UI_BINDS_COL_KEY1] = "Key 1", [UI_BINDS_COL_KEY2] = "Key 2", [UI_BINDS_COL_PAD] = "Controller",
[UI_BINDS_GROUP_BUTTONS] = "Buttons", [UI_BINDS_GROUP_MOVE] = "Movement", [UI_BINDS_GROUP_CAMERA] = "Camera",
[UI_BINDS_PRESS_KEY] = "Press a key or mouse button for %s",
[UI_BINDS_PRESS_PAD] = "Press a controller button for %s",
[UI_BINDS_CANCEL_HINT] = "Esc cancels, or wait %d s",
[UI_BINDS_TAKEN] = "%s was taken from %s", [UI_BINDS_SWAPPED] = "%s swapped with %s",
[UI_BINDS_RESET] = "Reset all buttons",
[UI_BINDS_RESET_DESC] = "Restores the default keys and buttons.",
[UI_BIND_A] = "A", [UI_BIND_B] = "B", [UI_BIND_X] = "X", [UI_BIND_Y] = "Y",
[UI_BIND_LCLICK] = "Left stick click", [UI_BIND_RCLICK] = "Right stick click", [UI_BIND_L] = "L",
[UI_BIND_R] = "R", [UI_BIND_ZL] = "ZL", [UI_BIND_ZR] = "ZR", [UI_BIND_PLUS] = "Plus", [UI_BIND_MINUS] = "Minus",
[UI_BIND_LEFT] = "D-pad left", [UI_BIND_UP] = "D-pad up", [UI_BIND_RIGHT] = "D-pad right",
[UI_BIND_DOWN] = "D-pad down",
[UI_BIND_LSTICK_LEFT] = "Move left", [UI_BIND_LSTICK_UP] = "Move forward", [UI_BIND_LSTICK_RIGHT] = "Move right",
[UI_BIND_LSTICK_DOWN] = "Move back",
[UI_BIND_RSTICK_LEFT] = "Camera left", [UI_BIND_RSTICK_UP] = "Camera up", [UI_BIND_RSTICK_RIGHT] = "Camera right",
[UI_BIND_RSTICK_DOWN] = "Camera down",
[UI_BIND_DESC_A] = "Actions: talk, open, pick up, climb, grab. Hold to dash.",
[UI_BIND_DESC_B] = "Put away, cancel, back. Jump when Swap Jump Controls is on in the game's Options.",
[UI_BIND_DESC_X] = "Jump. Put away when Swap Jump Controls is on in the game's Options.",
[UI_BIND_DESC_Y] = "Attack with the sword.",
[UI_BIND_DESC_LCLICK] = "Left stick press (not on the game's controls screen).",
[UI_BIND_DESC_RCLICK] = "Reset the camera behind Link.",
[UI_BIND_DESC_L] = "Quick-select items; the previous page in the game's menus.",
[UI_BIND_DESC_R] = "Quick-select items; the next page in the game's menus.",
[UI_BIND_DESC_ZL] = "Target (hold or toggle: Targeting Type in the game's Options).",
[UI_BIND_DESC_ZR] = "Use the selected item: slingshot, bow, boomerang, hookshot, bombs, bottles.",
[UI_BIND_DESC_PLUS] = "Menu: items, equipment, collection, system.", [UI_BIND_DESC_MINUS] = "Map.",
[UI_BIND_DESC_LEFT] = "Play the ocarina.", [UI_BIND_DESC_UP] = "Put the accessory on or take it off.",
[UI_BIND_DESC_RIGHT] = "Talk to Navi.", [UI_BIND_DESC_DOWN] = "Change boots.",
[UI_BIND_DESC_MOVE] = "Moves Link.",
[UI_BIND_DESC_CAMERA] = "Turns the camera.",
[UI_BIND_SHAKE] = "Shake the camera stick",
[UI_BIND_DESC_SHAKE] = "Shakes the right stick. Hold to keep shaking.",
[UI_KEY_SPACE] = "Space", [UI_KEY_TAB] = "Tab", [UI_KEY_LSHIFT] = "Left Shift", [UI_KEY_LCTRL] = "Left Ctrl",
[UI_KEY_UP] = "Up arrow", [UI_KEY_DOWN] = "Down arrow", [UI_KEY_LEFT] = "Left arrow",
[UI_KEY_RIGHT] = "Right arrow",
[UI_KEY_MOUSE_L] = "Left mouse", [UI_KEY_MOUSE_R] = "Right mouse", [UI_KEY_MOUSE_M] = "Middle mouse",
[UI_KEY_MOUSE_X1] = "Mouse 4", [UI_KEY_MOUSE_X2] = "Mouse 5",
[UI_KEY_ENTER] = "Enter", [UI_KEY_BACKSPACE] = "Backspace", [UI_KEY_RSHIFT] = "Right Shift",
[UI_KEY_RCTRL] = "Right Ctrl", [UI_KEY_LALT] = "Alt", [UI_KEY_CAPSLOCK] = "Caps Lock", [UI_KEY_INSERT] = "Insert",
[UI_KEY_DELETE] = "Delete", [UI_KEY_HOME] = "Home", [UI_KEY_END] = "End", [UI_KEY_PAGEUP] = "Page Up",
[UI_KEY_PAGEDOWN] = "Page Down", [UI_KEY_NUM_FMT] = "Num %s",
[UI_PAD_SOUTH] = "Bottom button", [UI_PAD_EAST] = "Right button", [UI_PAD_WEST] = "Left button",
[UI_PAD_NORTH] = "Top button", [UI_PAD_LSTICK] = "Left stick", [UI_PAD_RSTICK] = "Right stick",
[UI_PAD_L] = "Left bumper", [UI_PAD_R] = "Right bumper", [UI_PAD_START] = "Start", [UI_PAD_BACK] = "Back",
[UI_PAD_DPAD_LEFT] = "D-pad left", [UI_PAD_DPAD_UP] = "D-pad up", [UI_PAD_DPAD_RIGHT] = "D-pad right",
[UI_PAD_DPAD_DOWN] = "D-pad down", [UI_PAD_ZL] = "Left trigger", [UI_PAD_ZR] = "Right trigger",
[UI_PAD_LPADDLE1] = "Left back button", [UI_PAD_RPADDLE1] = "Right back button",
[UI_PAD_LPADDLE2] = "Left back button 2", [UI_PAD_RPADDLE2] = "Right back button 2",
[UI_PAD_CROSS] = "Cross", [UI_PAD_CIRCLE] = "Circle", [UI_PAD_SQUARE] = "Square", [UI_PAD_TRIANGLE] = "Triangle",
[UI_MENU_AMIIBO_DIR] = "Amiibo folder",
[UI_MENU_AMIIBO_OPEN] = "Open",
[UI_MENU_AMIIBO_DEFAULT_DIR] = "Default folder",
[UI_MENU_AMIIBO_REFRESH] = "Refresh",
[UI_MENU_AMIIBO_PICK] = "Amiibo dumps (540-byte .bin or .nfc files):",
[UI_MENU_AMIIBO_NO_DIR] = "Cannot open the folder %s",
[UI_MENU_AMIIBO_READER] = "NFC reader",
[UI_MENU_AMIIBO_STATE] = "Reader:",
[UI_MENU_AMIIBO_STATE_IDLE] = "ready",
[UI_MENU_AMIIBO_STATE_SEARCHING] = "the game is waiting for an amiibo",
[UI_MENU_AMIIBO_STATE_FOUND] = "amiibo on the reader",
[UI_MENU_AMIIBO_STATE_MOUNTED] = "the game is reading the amiibo",
[UI_MENU_AMIIBO_STATE_OFF] = "off",
[UI_MENU_AMIIBO_FILE] = "Selected file:",
[UI_MENU_AMIIBO_NO_FILE] = "(no file selected)",
[UI_MENU_AMIIBO_TAP] = "Tap the amiibo",
[UI_MENU_AMIIBO_REMOVE] = "Lift the amiibo",
[UI_MENU_AMIIBO_AUTO_REMOVE] = "Lift the amiibo by itself after a tap",
[UI_MENU_AMIIBO_HOLD] = "Time on the reader",
[UI_MENU_AMIIBO_SECONDS] = "%.1f s",
[UI_MENU_AMIIBO_TAG] = "Amiibo on the reader:",
[UI_MENU_AMIIBO_NO_TAG] = "No amiibo on the reader.",
[UI_MENU_AMIIBO_TAG_FILE] = "File: %s",
[UI_MENU_AMIIBO_TAG_ID] = "Character %s, series %02x, number %04x, type %02x",
[UI_MENU_AMIIBO_TAG_UID] = "UID: %s",
[UI_MENU_AMIIBO_READY] = "Ready",
[UI_MENU_AMIIBO_TAPPED] = "Tapped: %s",
[UI_MENU_AMIIBO_LOAD_FAILED] = "Not an amiibo dump (540-byte NTAG215): %s",
[UI_MENU_AMIIBO_REMOVED] = "Amiibo lifted",
[UI_MENU_AMIIBO_STATUS] = "Status: %s",
[UI_MENU_MENU_LANG] = "Menu language", [UI_MENU_MENU_LANG_DESC] = "Language of this menu and the overlay.",
[UI_MENU_MENU_LANG_AUTO] = "Automatic (from Windows)",
[UI_MENU_REPLAY_WORKERS] = "CPU helper threads (experimental)",
[UI_MENU_REPLAY_WORKERS_DESC] = "Uses more of your CPU's cores to prepare each frame for the graphics card. Automatic "
"picks the number for your CPU: half its cores less one, none on four cores or fewer "
"and none on RX 6000 and older Radeon cards. 0 turns it off. 3 gave about 20% more "
"frames a second on an 8-core CPU. If your game crashes with this on, set it to 0.",
[UI_MENU_REPLAY_PIPE] = "Helpers work ahead (experimental)",
[UI_MENU_REPLAY_PIPE_DESC] = "The game carries on with the rest of the frame while the helper threads are still "
"busy, instead of waiting for them. The number is how many batches of work the "
"helpers may have at once; 0 turns it off. A small gain: 4 gave 1 to 2% more frames a "
"second.",
[UI_MENU_REPLAY_SMALL] = "Helpers take small jobs (experimental)",
[UI_MENU_REPLAY_SMALL_DESC] = "Gives the helper threads the smaller batches of drawing work too, not only the large "
"ones. The number is the smallest batch a helper takes, counted in draw calls; 0 "
"turns it off. A small gain: 16 gave about 2% more frames a second.",
[UI_MENU_TAIL_EARLY] = "Start next frame early (experimental)",
[UI_MENU_TAIL_EARLY_DESC] = "The game starts on its next frame while the graphics card is still finishing the "
"current one. The biggest gain of these settings: 19 to 29% more frames a second with "
"FSR 4 on a Radeon RX 7900 XT, the only card it was measured on. It needs TAA, DLSS, "
"FSR 3.1 or FSR 4, and for now an AMD graphics card. Without them it changes nothing.",
[UI_MENU_NEEDS_WORKERS] = "needs CPU helper threads", [UI_MENU_NEEDS_PIPE] = "needs Helpers work ahead",
[UI_MENU_DISCORD_RPC] = "Discord Rich Presence",
[UI_MENU_DISCORD_RPC_DESC] = "Shows \"Playing NX2navi\" with the play time in your Discord status while the "
"game runs. discord_app_id and discord_image in nx2navi.ini choose the application.",
[UI_MENU_ADV_WARNING] = "These settings are for testing and troubleshooting. Change them only when you know why.",
[UI_MENU_GROUP_SCHED] = "Scheduling", [UI_MENU_GROUP_SHADERS] = "Shaders and pipelines",
[UI_MENU_GROUP_TEXMEM] = "Textures and memory", [UI_MENU_GROUP_FIXES] = "Render fixes",
[UI_MENU_GROUP_VULKAN] = "Vulkan", [UI_MENU_GROUP_DIAG] = "Diagnostics",
[UI_MENU_ASYNC_PREEMPT] = "Virtual core preemption",
[UI_MENU_ASYNC_PREEMPT_DESC] = "Lets a game thread interrupt another one on the same virtual core.",
[UI_MENU_PREEMPT_OFF] = "Off", [UI_MENU_PREEMPT_ON] = "On", [UI_MENU_PREEMPT_INHERIT] = "Inheritance only",
[UI_MENU_REPLAY_ASYNC] = "GPU frame prep on its own thread",
[UI_MENU_REPLAY_ASYNC_DESC] = "Prepares frames for the GPU on a separate thread instead of the game thread. Faster in heavy scenes, but can show a dark or flickering frame now and then, and adds up to one frame of latency.",
[UI_MENU_TIMER_1MS] = "1 ms Windows timer",
[UI_MENU_TIMER_1MS_DESC] = "Raises the system timer resolution to 1 ms for steadier frame pacing.",
[UI_MENU_PIPE_WAIT] = "Waiting draw handling",
[UI_MENU_PIPE_WAIT_DESC] = "Default keeps the current scheduling with a reserved worker for waiting draws; Old (draw) uses the previous scheduling.",
[UI_MENU_PIPE_WAIT_DEFAULT] = "Default", [UI_MENU_PIPE_WAIT_DRAW] = "Old (draw)",
[UI_MENU_PIPE_SKIP] = "Draws skipped while a pipeline builds",
[UI_MENU_PIPE_SKIP_DESC] = "Which draws are dropped instead of waiting for their pipeline.",
[UI_MENU_PIPE_SKIP_STRICT] = "Strict", [UI_MENU_PIPE_SKIP_ANY] = "Any",
[UI_MENU_PIPE_SKIP_FULLSCREEN] = "Fullscreen passes",
[UI_MENU_LIB_PREBUILD] = "Stage library prebuild",
[UI_MENU_LIB_PREBUILD_DESC] = "Builds shader stage libraries ahead of time in the background.",
[UI_MENU_LIB_PREBUILD_THREADS] = "Stage library prebuild threads",
[UI_MENU_LIB_PREBUILD_THREADS_DESC] = "Threads used for the prebuild; Automatic picks a number from your CPU.",
[UI_MENU_PIPE_PREBUILD] = "Pipeline prebuild",
[UI_MENU_PIPE_PREBUILD_DESC] = "Builds known pipelines ahead of time.",
[UI_MENU_PREWARM_XLATE] = "Translator prewarm",
[UI_MENU_PREWARM_XLATE_DESC] = "Threads that translate known shaders at start; Automatic takes half the CPU threads, at most 16.",
[UI_MENU_GPL] = "Graphics pipeline library",
[UI_MENU_GPL_DESC] = "Uses the Vulkan pipeline library extension; turn off if your driver misbehaves with it.",
[UI_MENU_ASTC] = "ASTC texture decoding", [UI_MENU_ASTC_DESC] = "Where compressed ASTC textures are decoded.",
[UI_MENU_ASTC_AUTO] = "Automatic", [UI_MENU_ASTC_GPU] = "GPU shader", [UI_MENU_ASTC_NATIVE] = "Native",
[UI_MENU_ASTC_CPU] = "CPU",
[UI_MENU_MEMORY] = "GPU memory mode", [UI_MENU_MEMORY_DESC] = "How game memory is shared with the GPU.",
[UI_MENU_MEMORY_AUTO] = "Automatic", [UI_MENU_MEMORY_IMPORT] = "Import", [UI_MENU_MEMORY_MIRROR] = "Mirror",
[UI_MENU_MEMORY_VERIFY] = "Verify",
[UI_MENU_TEX_ALIAS] = "Texture aliasing", [UI_MENU_TEX_ALIAS_DESC] = "A new texture created over a live texture's memory starts with that content instead of empty.",
[UI_MENU_TEX_VRAM_PRESSURE] = "Texture memory limit", [UI_MENU_TEX_VRAM_PRESSURE_DESC] = "Percent of video memory above which textures the game released are dropped (they come back from storage when used again). 0 keeps them.",
[UI_MENU_ASTC_BC] = "Compress ASTC to BC3", [UI_MENU_ASTC_BC_DESC] = "With the GPU decoder: re-encodes decoded ASTC textures to BC3, a quarter of the video memory. Textures look slightly blockier. Auto: on for GPUs with 4 GB of video memory or less.",
[UI_MENU_LOD_GUARD] = "LOD guard", [UI_MENU_LOD_GUARD_DESC] = "Prevents objects flashing in the wrong place or a flat far field for a frame, by waiting for the game to finish rewriting level-of-detail data before the GPU reads it.",
[UI_MENU_FIX_C0] = "Constant buffer fix",
[UI_MENU_FIX_C0_DESC] = "Fills the driver-reserved constant bank c0 (storage sizes, dispatch size, point size, base instance) instead of reading zeros.",
[UI_MENU_FIX_ZERO] = "Zero new GPU memory",
[UI_MENU_FIX_ZERO_DESC] = "New GPU memory pools start zero-filled, as Switch memory does.",
[UI_MENU_BIND_SKIP] = "Skip repeated binds",
[UI_MENU_BIND_SKIP_DESC] = "Optimisation: skips bindings that did not change.",
[UI_MENU_SHADER_MEMO] = "Shader memo", [UI_MENU_SHADER_MEMO_DESC] = "Optimisation: remembers shader lookups.",
[UI_MENU_PIPE_MEMO] = "Pipeline memo", [UI_MENU_PIPE_MEMO_DESC] = "Optimisation: reuses the previous draw's pipeline when its state repeats.",
[UI_MENU_TEX_MEMO] = "Texture binding memo", [UI_MENU_TEX_MEMO_DESC] = "Optimisation: remembers texture descriptors between draws.",
[UI_MENU_DESC_TEMPLATE] = "Descriptor templates",
[UI_MENU_DESC_TEMPLATE_DESC] = "Optimisation: updates descriptors in bulk.",
[UI_MENU_PUSH_SKIP] = "Skip repeated push constants",
[UI_MENU_PUSH_SKIP_DESC] = "Optimisation: skips push constants that did not change.",
[UI_MENU_SPLIT_DRAWS] = "Early GPU submission",
[UI_MENU_SPLIT_DRAWS_DESC] = "Submits GPU work in parts every N draws between passes so the GPU starts earlier; 0 turns it off.",
[UI_MENU_VK_VALIDATION] = "Validation layer",
[UI_MENU_VK_VALIDATION_DESC] = "Checks every Vulkan call and slows the game down a lot.",
[UI_MENU_VK_VALIDATION_MISSING] = "The validation layer is not installed.",
[UI_MENU_VK_DYN_VERTEX] = "Dynamic vertex state",
[UI_MENU_VK_DYN_VERTEX_DESC] = "Forces dynamic vertex input on or off; the default depends on the GPU.",
[UI_MENU_VK_DYN_A2C] = "Dynamic alpha to coverage",
[UI_MENU_VK_DYN_A2C_DESC] = "Forces dynamic alpha to coverage on or off. Default: off on AMD's driver for RDNA 2 and "
"older, which draws characters black with it, on elsewhere.",
[UI_MENU_VK_SUBGROUP_PIN] = "Pin subgroup size", [UI_MENU_VK_SUBGROUP_PIN_DESC] = "Fixes the shader subgroup size.",
[UI_MENU_TRACE] = "Performance log", [UI_MENU_TRACE_DESC] = "Writes frame timings to a file.",
[UI_MENU_FLIGHT] = "Flight recorder",
[UI_MENU_FLIGHT_DESC] = "Keeps a short history and saves it when a frame freezes.",
[UI_MENU_FLIGHT_SPIKE_MS] = "Freeze threshold (ms)",
[UI_MENU_FLIGHT_SPIKE_MS_DESC] = "Frame time that counts as a freeze.",
[UI_MENU_PASS_CRUMBS] = "GPU pass marks",
[UI_MENU_PASS_CRUMBS_DESC] = "After a GPU crash, the log names the render pass that was running. Automatic: AMD only. On: also NVIDIA, at a small cost.",
[UI_MENU_INPUT_RECORD] = "Input recording",
[UI_MENU_INPUT_RECORD_DESC] = "Writes your inputs to a file for bug reports.",
[UI_MENU_OPEN_LOG] = "Open log folder", [UI_MENU_OPEN_LOG_DESC] = "Shows the folder with the log files.",
[UI_MENU_COPY_INFO] = "Copy system info",
[UI_MENU_COPY_INFO_DESC] = "Copies GPU, driver, CPU, RAM and changed settings to the clipboard.",
[UI_MENU_COPY_INFO_DONE] = "Copied", [UI_MENU_ACTION_FAILED] = "did not work",
[UI_MENU_RESET] = "Reset all settings to defaults", [UI_MENU_RESET_DESC] = "Applies to every tab.",
[UI_MENU_RESET_CONFIRM] = "Reset every setting to its default?", [UI_MENU_RESET_YES] = "Reset",
[UI_MENU_RESET_NO] = "Cancel",
[UI_MENU_OV_FPS] = "%.0f FPS", [UI_MENU_OV_FRAME_MS] = "%.1f ms", [UI_MENU_OV_GAME_PCT] = "game %.0f%%",
[UI_MENU_OV_MAX_MS] = "max %.1f ms",
[UI_MENU_OV_FPS_LABEL] = "FPS", [UI_MENU_OV_FG_LABEL] = "FG", [UI_PERF_LINE_FPS_FG] = "%.0f fps (%.0f frame gen)",
[UI_MENU_OV_FRAME_LABEL] = "Frame", [UI_MENU_OV_FMT_FPS] = "%.0f",
[UI_MENU_OV_LOW1] = "1%% low %.0f", [UI_MENU_OV_LOW01] = "0.1%% low %.0f",
[UI_MENU_OV_GPU] = "GPU", [UI_MENU_OV_CPU] = "CPU", [UI_MENU_OV_RAM] = "RAM", [UI_MENU_OV_VRAM] = "VRAM",
[UI_MENU_OV_TEMP] = "Temperature", [UI_MENU_OV_POWER] = "Power", [UI_MENU_OV_CLOCK] = "Clock",
[UI_MENU_OV_NONE] = "-",
[UI_MENU_OV_REPLAY] = "GPU frame prep", [UI_MENU_OV_GPU_TIME] = "GPU busy per frame",
[UI_MENU_OV_PIPE_WAIT] = "Pipeline waits",
[UI_MENU_OV_SHADER_WAIT] = "Shader waits", [UI_MENU_OV_TEX_UPLOADS] = "Texture uploads",
[UI_MENU_OV_FMT_PCT] = "%.0f%%", [UI_MENU_OV_FMT_TEMP] = "%.0f °C", [UI_MENU_OV_FMT_POWER] = "%.0f W",
[UI_MENU_OV_FMT_MHZ] = "%.0f MHz", [UI_MENU_OV_FMT_GB] = "%.1f GB", [UI_MENU_OV_FMT_GB_OF] = "/ %.1f GB",
[UI_MENU_OV_GAME_GB] = "game %.1f GB", [UI_MENU_OV_FMT_MS] = "%.2f ms", [UI_MENU_OV_PER_FRAME] = "%.1f per frame",
[UI_MENU_OV_WINDOW] = "Window", [UI_MENU_OV_OUTPUT] = "Game image", [UI_MENU_OV_SCENE] = "3D scene",
[UI_MENU_OV_SCALING] = "Scaling", [UI_MENU_OV_LIMIT] = "Frame limit", [UI_MENU_OV_PRESENT] = "Presentation",
[UI_MENU_OV_FMT_SIZE] = "%ux%u", [UI_MENU_OV_FMT_SCENE] = "%ux%u, %.0f%%",
[UI_MENU_OV_FMT_FSR] = "AMD FSR 1, sharpness %d%%", [UI_MENU_OV_SCALE_NONE] = "none (1:1)",
[UI_MENU_OV_FMT_SHRINK] = "bilinear + FSR sharpening %d%%",
[UI_MENU_OV_SCALE_BILINEAR] = "bilinear",
[UI_MENU_OV_SCALE_DOWN] = "bilinear (FSR sharpness 0)",
[UI_MENU_TAB_CHEATS] = "Cheats",
[UI_MENU_CHEATS_NONE] = "No cheats for this game version. A mod's cheats are an Atmosphere cheat file in its "
"cheats folder, named after the game's build: mods\\<mod>\\cheats\\%s. Restart the game to "
"read them. For cheats that change the game's code, the game rebuilds itself at start (a "
"few minutes).",
[UI_MENU_CHEATS_MOD] = "%s: %d cheats",
[UI_MENU_CHEAT_CODE_DESC] = "Changes the game's code. Switches at once.",
[UI_MENU_CHEAT_KEY_DESC] = "Changes the game's code while you hold %s. Switches at once.",
[UI_MENU_CHEAT_DATA_DESC] = "Writes the game's memory every frame while it is on.",
[UI_MENU_CHEAT_MASTER] = "always on",
[UI_MENU_CHEAT_MASTER_DESC] = "The file's master code: it is always on.",
[UI_MENU_CHEAT_RESTORE] = "not needed",
[UI_MENU_CHEAT_RESTORE_DESC] = "It only writes the game's own code back. Switching a cheat off already does that.",
[UI_MENU_CHEAT_REBUILD] = "after the rebuild",
[UI_MENU_CHEAT_REBUILD_DESC] = "This cheat changes the game's code and is new or edited since the game was built. "
"The game builds it in when it starts next (a few minutes), or use Rebuild the game "
"now.",
[UI_MENU_CHEAT_UNSUPPORTED] = "not supported",
[UI_MENU_CHEAT_UNSUPPORTED_DESC] = "This cheat cannot be used with this version of the game:",
[UI_MENU_SAVES] = "Saves",
[UI_MENU_SAVE_EXPORT] = "Export save",
[UI_MENU_SAVE_EXPORT_DESC] = "Writes your save (every slot) into one zip file in your Downloads folder, to give to "
"another player or attach to a bug report. It never holds your keys or game files.",
[UI_MENU_SAVE_EXPORT_BUG] = "Export save for a bug report",
[UI_MENU_SAVE_EXPORT_BUG_DESC] = "The same zip with this run's log and your settings (nx2navi.ini) added, which "
"show what happened and with which settings. Attach it to your bug report.",
[UI_MENU_SAVE_IMPORT] = "Import a save",
[UI_MENU_SAVE_IMPORT_DESC] = "Choose a save someone shared (an NX2navi-save zip). It replaces your save, every slot, "
"at the next start: the game keeps your progress in memory and would write it back "
"over a save replaced now. Your current save is copied to the saves folder first.",
[UI_MENU_SAVE_IMPORT_WAITING] = "at next start",
[UI_MENU_SAVE_IMPORT_CANCEL] = "Cancel the import",
[UI_MENU_SAVE_IMPORT_CANCEL_DESC] = "Keeps your save as it is: the save waiting for the next start is dropped.",
[UI_MENU_SAVE_BUSY] = "working…",
[UI_MENU_SAVE_EXPORTED] = "Saved as %s",
[UI_MENU_SAVE_IMPORT_READY] = "The save (NX2navi %s) loads at the next start: select Restart below. Your current "
"save is copied to the saves folder first.",
[UI_MENU_SAVE_IMPORT_CANCELLED] = "Import cancelled; your save stays as it is.",
[UI_MENU_SAVE_IMPORTED] = "A shared save was imported at this start. Your old save is in %s",
[UI_MENU_SAVE_IMPORTED_NEW] = "A shared save was imported at this start.",
[UI_MENU_SAVE_E_NO_SAVE] = "There is no save to export yet: play until the game saves.",
[UI_MENU_SAVE_E_READ_SAVE] = "A file of your save could not be read; try again in a moment.",
[UI_MENU_SAVE_E_WRITE] = "The zip could not be written into %s.",
[UI_MENU_SAVE_E_READ] = "%s could not be read.",
[UI_MENU_SAVE_E_STAGE] = "The save could not be prepared for the next start; the log says why.",
[UI_MENU_SAVE_E_NOT_SAVE] = "%s is not a save NX2navi exported.",
[UI_MENU_SAVE_E_OTHER_GAME] = "%s is a save of another game.",
[UI_MENU_SAVE_E_NEWER] = "%s was made by a newer NX2navi: update NX2navi first.",
[UI_MENU_SAVE_E_DAMAGED] = "%s is damaged: download it again.",
[UI_MENU_SAVE_E_UNSAFE] = "%s was refused: it holds files outside a save, links, or far more than a save.",
[UI_MENU_CAPTURE_SAVED] = "Bug capture %d saved",
[UI_MENU_CAPTURE_FOLDER] = "Folder: %s",
[UI_MENU_CAPTURE_FAILED] = "Bug capture %d could not be saved",
[UI_BOOT_TITLE] = "Preparing shaders",
[UI_BOOT_STARTING] = "Starting", [UI_BOOT_SHADERS] = "Shaders: %lld of %lld", [UI_BOOT_PIPELINES] = "Pipelines: %lld of %lld",
[UI_BOOT_COMPUTE] = "Compute pipelines: %lld of %lld", [UI_BOOT_DRIVER_CACHE] = "Driver cache: %lld of %lld",
[UI_MENU_UPSCALING] = "Upscaling",
[UI_MENU_UPSCALING_DESC] = "How the picture is smoothed and scaled to your window. Native draws the 3D scene at "
"the picture's full size with no upscaler: the sharpest, and the most GPU work.",
[UI_MENU_UPSCALING_DESC_FSR] = "How the picture is smoothed and scaled to your window. Native draws the 3D scene "
"at the picture's full size with no upscaler: the sharpest, and the most GPU work.",
[UI_MENU_FRAMEGEN] = "Frame generation",
[UI_MENU_FRAMEGEN_DESC] = "Adds generated frames for smoother motion. Needs DLSS or FSR 3.1.",
[UI_MENU_FRAMEGEN_OFF] = "Off",
[UI_MENU_HDR_TONEMAPPED] = "RenoDX", [UI_MENU_HDR_NATIVE] = "Native",
[UI_MENU_FRAMEGEN_NOTE] = "needs DLSS or FSR 3.1",
[UI_MENU_FRAMEGEN_NEEDS] = "choose a DLSS or FSR 3.1 mode under Upscaling first",
[UI_MENU_FRAMEGEN_NEEDS_FSR] = "choose an FSR 3.1 mode under Upscaling first",
[UI_MENU_FRAMEGEN_NOTE_FSR] = "needs FSR 3.1",
[UI_MENU_FRAMEGEN_DESC_FSR] = "Adds generated frames for smoother motion. Needs FSR 3.1.",
[UI_MENU_UPSCALING_DESC_NO_FSR] = "How the picture is smoothed and scaled to your window. Native draws the 3D scene "
"at the picture's full size with no upscaler: the sharpest, and the most GPU "
"work. AMD FSR 3.1 is not offered here: it needs amd_fidelityfx_vk.dll, which "
"cannot be loaded.",
[UI_MENU_FSR3_OFF] = "in use: off, FSR 3.1 is not available",
[UI_MENU_FRAMEGEN_DESC_DLSS] = "Adds generated frames for smoother motion. Needs DLSS.",
[UI_MENU_FRAMEGEN_NOTE_DLSS] = "needs DLSS",
[UI_MENU_FRAMEGEN_NEEDS_DLSS] = "choose a DLSS mode under Upscaling first",
[UI_MENU_FRAMEGEN_DESC_NONE] = "Adds generated frames for smoother motion. Needs DLSS or FSR 3.1, and neither runs "
"here.",
[UI_MENU_FRAMEGEN_NEEDS_NONE] = "needs DLSS or FSR 3.1, which do not run here",
[UI_MENU_FRAMEGEN_MULT] = "DLSS multiplier",
[UI_MENU_FG_MULT_DESC] = "Frames on screen for each frame the game draws with DLSS Frame Generation: 2x adds one "
"generated frame, up to 6x on an RTX 50 card. Dynamic adds only the frames needed to "
"reach your display's refresh rate. Changes take effect at once.",
[UI_MENU_FG_MULT_DYNAMIC] = "Dynamic",
[UI_MENU_FRAMEGEN_MULT_DESC] = "Frames on screen for each frame the game draws: 2x adds one generated frame, 3x "
"two, 4x three. Higher is smoother but adds a little delay. The frame limit counts "
"the frames the game draws, so the screen shows the limit times this. 2x needs a "
"GeForce RTX 40 GPU or newer, 3x and 4x an RTX 50.",
[UI_MENU_FRAMEGEN_MULT_RTX50] = "3x and 4x need an RTX 50 GPU",
[UI_MENU_FRAMEGEN_MULT_UPTO] = "up to %dx on this GPU and driver",
[UI_MENU_FRAMEGEN_MULT_OLD_DLL] = "2x only: update the DLSS frame generation files",
[UI_MENU_FRAMEGEN_UNAVAILABLE] = "in use: off: it needs an RTX 40 or newer; if you have one, see dlssg in the log",
[UI_MENU_FRAMEGEN_OFF_FILES] = "in use: off, its files are missing",
[UI_MENU_FRAMEGEN_DESC_ANY] = "Adds generated frames for smoother motion, with any Upscaling choice.",
[UI_MENU_FRAMEGEN_DESC_NGX] = "Adds generated frames for smoother motion. NVIDIA DLSS needs a DLSS mode under "
"Upscaling when the game starts; it then runs with any Upscaling choice.",
[UI_MENU_FRAMEGEN_NOTE_NGX] = "needs DLSS when the game starts",
[UI_MENU_GAME_RES] = "Resolution",
[UI_MENU_GAME_RES_DESC] = "Size of the game's picture; outside fullscreen the window takes it too. Higher is sharper "
"but costs more GPU power.",
[UI_MENU_GAME_RES_NATIVE] = "Native",
[UI_MENU_CHEATS_REBUILD] = "Rebuild the game now",
[UI_MENU_CHEATS_REBUILD_DESC] = "Some cheats change the game's code and are not built into it: they are new or "
"edited, or their last rebuild failed or was cancelled. Closes the game; the setup "
"builds them in (a few minutes) and starts the game again. Progress since your "
"last save is lost.",
[UI_MENU_MODS_EXEFS_UNSUPPORTED] = "This mod patches the game code (exefs) in a way the port cannot apply, so the "
"whole mod stays off. %s",
[UI_MENU_MODS_EXEFS_OTHER] = "Its code patches (exefs) are made for another game version.",
[UI_MENU_MODS_EXEFS_ON] = "Code patches in use: %d files.",
[UI_MENU_MODS_REPLACES_BUILTIN] = "Code patches in use: %d files. They replace the port's own patch %s, which "
"stays off while this mod is on.",
};
static const char *const text_ru[UI_TEXT_COUNT] = {
SWKBD("Ввод текста", "Введите имя", "Лошадь", "ОК", "Отмена", "Контроллер: A — ОК, B — отмена"),
[UI_MENU_TITLE] = "Настройки",
[UI_MENU_TAB_SCREEN] = "Экран", [UI_MENU_TAB_GAME] = "Игра", [UI_MENU_TAB_MODS] = "Моды", [UI_MENU_TAB_SOUND] = "Звук",
[UI_MENU_TAB_CONTROLS] = "Управление", [UI_MENU_TAB_AMIIBO] = "Amiibo", [UI_MENU_TAB_MENU] = "Меню", [UI_MENU_TAB_ADVANCED] = "Дополнительно",
[UI_MENU_CONTINUE] = "Продолжить", [UI_MENU_QUIT] = "Выйти из игры",
[UI_MENU_ON] = "Вкл.", [UI_MENU_OFF] = "Выкл.", [UI_MENU_AUTO] = "Автоматически",
[UI_MENU_DEFAULT_MARK] = "по умолчанию",
[UI_MENU_AFTER_RESTART] = "после перезапуска", [UI_MENU_SET_BY_ENV] = "задано переменной окружения",
[UI_MENU_SAVE_FAILED] = "не удалось сохранить настройки",
[UI_MENU_INI_UNKNOWN] = "nx2navi.ini: не настройки этой версии, пропущены: %s",
[UI_MENU_VERSION] = "NX2navi %s, игра %s",
[UI_MENU_FULLSCREEN] = "Полный экран", [UI_MENU_FULLSCREEN_DESC] = "Игра на весь экран. F11 переключает.",
[UI_MENU_WINDOW_SIZE] = "Размер окна", [UI_MENU_WINDOW_SIZE_DESC] = "Размер окна вне полноэкранного режима.",
[UI_MENU_WINDOW_SIZE_CUSTOM] = "Другой",
[UI_MENU_PRESENT_DESC] = "Убирает разрывы изображения. Выкл. немного снижает задержку.",
[UI_MENU_PRESENT_MAILBOX] = "Mailbox", [UI_MENU_PRESENT_VSYNC] = "Вертикальная синхронизация",
[UI_MENU_PRESENT_IMMEDIATE] = "Без ожидания",
[UI_MENU_PRESENT_IN_USE] = "сейчас: %s",
[UI_MENU_LOW_LATENCY] = "Низкая задержка",
[UI_MENU_LOW_LATENCY_DESC] = "Драйвер видеокарты задерживает начало каждого кадра, чтобы ввод считывался как "
"можно позже (NVIDIA Reflex, AMD Anti-Lag). Он же держит ограничение частоты кадров. "
"Boost не даёт видеокарте снижать частоту.",
[UI_MENU_LOW_LATENCY_BOOST] = "Вкл. + Boost",
[UI_MENU_LOW_LATENCY_NO_DRIVER] = "у этого драйвера нет режима низкой задержки",
[UI_MENU_LOW_LATENCY_DLSSG] = "генерация кадров DLSS использует свой режим",
[UI_MENU_LOW_LATENCY_FG] = "выключено, пока на этой видеокарте работает генерация кадров",
[UI_MENU_FRAMEGEN_DESC_ANY] = "Добавляет сгенерированные кадры для более плавного движения, с любым выбором в "
"Upscaling.",
[UI_MENU_FRAMEGEN_DESC_NGX] = "Добавляет сгенерированные кадры для более плавного движения. Для NVIDIA DLSS "
"нужен режим DLSS в Upscaling при запуске игры; после этого генерация работает с "
"любым "
"выбором в Upscaling.",
[UI_MENU_FRAMEGEN_NOTE_NGX] = "нужен DLSS при запуске игры",
[UI_MENU_LOW_LATENCY_FAILED] = "сейчас: выкл., драйвер отказал (см. lowlat в журнале)",
[UI_MENU_GPU] = "Видеокарта", [UI_MENU_GPU_DESC] = "Видеокарта, на которой работает игра.",
[UI_MENU_GPU_AUTO] = "Автоматически",
[UI_MENU_PERF_OVERLAY] = "Индикатор производительности",
[UI_MENU_PERF_OVERLAY_DESC] = "Показывает частоту кадров и данные системы. F10 меняет режим.",
[UI_MENU_PERF_OFF] = "Выкл.", [UI_MENU_PERF_FPS] = "FPS", [UI_MENU_PERF_FULL] = "Полный",
[UI_PERF_LINE_FPS] = "%.0f к/с",
[UI_MENU_GRAPHICS] = "Изображение",
[UI_MENU_OUTPUT_RES] = "Разрешение игры",
[UI_MENU_OUTPUT_RES_DESC] = "Разрешение, в котором рисуется игра. Чем выше, тем больше нагрузка на видеокарту.",
[UI_MENU_RENDER_SCALE] = "Масштаб 3D-отрисовки",
[UI_MENU_RENDER_SCALE_DESC] = "Размер 3D-сцены. Выше — чётче, но медленнее.",
[UI_MENU_RENDER_SCALE_GAME] = "Как в игре (83 %)",
[UI_MENU_UPSCALER] = "Масштабирование под окно",
[UI_MENU_UPSCALER_DESC] = "Как картинка игры вписывается в окно. Окно больше: FSR сохраняет края и детали чётче "
"билинейного. Окно меньше (Ocarina рисует 2560 × 1440): картинка уменьшается, и FSR "
"повышает её резкость на величину ниже.",
[UI_MENU_UPSCALER_FSR] = "AMD FSR 1", [UI_MENU_UPSCALER_BILINEAR] = "Билинейное",
[UI_MENU_UPSCALING_NATIVE] = "Родное (100%)",
[UI_MENU_UPSCALING_DESC] = "Как картинка сглаживается и масштабируется под окно. «Родное» рисует 3D-сцену в "
"полном размере картинки без апскейлера: самая чёткая картинка и самая большая "
"нагрузка на видеокарту.",
[UI_MENU_UPSCALING_DESC_FSR] = "Как картинка сглаживается и масштабируется под окно. «Родное» рисует 3D-сцену в "
"полном размере картинки без апскейлера: самая чёткая картинка и самая большая "
"нагрузка на видеокарту.",
[UI_MENU_UPSCALING_DESC_NO_FSR] = "Как картинка сглаживается и масштабируется под окно. «Родное» рисует 3D-сцену "
"в полном размере картинки без апскейлера: самая чёткая картинка и самая "
"большая нагрузка на видеокарту. AMD FSR 3.1 здесь не предлагается: ему нужен "
"amd_fidelityfx_vk.dll, который не удаётся загрузить.",
[UI_MENU_GAME_ASPECT] = "Широкий экран",
[UI_MENU_GAME_ASPECT_DESC] = "Расширяет обзор. Интерфейс и меню остаются 16:9.",
[UI_MENU_GAME_ASPECT_16_9] = "16:9 (как в игре)", [UI_MENU_GAME_ASPECT_WINDOW] = "По окну",
[UI_MENU_GAME_ASPECT_21_9] = "21:9", [UI_MENU_GAME_ASPECT_32_9] = "32:9",
[UI_MENU_FOV] = "Поле зрения",
[UI_MENU_FOV_DESC] = "Сколько мира показывает камера, в процентах от игрового. Только для версии игры 1.4.3.",
[UI_MENU_SHADOW_RES] = "Размер карты теней",
[UI_MENU_SHADOW_RES_DESC] = "Детализация теней. Выше — больше нагрузка на видеокарту.",
[UI_MENU_SHADOW_RES_GAME] = "Как в игре (меняется)",
[UI_MENU_ANISO] = "Фильтрация текстур",
[UI_MENU_ANISO_DESC] = "Анизотропная фильтрация текстур поверхностей: земля, дороги и стены под острым углом остаются чёткими вдали, а не размываются. Игра: уровень, который запрашивает игра, как на Switch.",
[UI_MENU_ANISO_GAME] = "Игра",
[UI_MENU_TEX_DETAIL] = "Детализация текстур",
[UI_MENU_TEX_DETAIL_DESC] = "Чёткость больших текстур поверхностей. «Сниженная» и «Низкая» не загружают их самые крупные версии, чтобы область помещалась в видеопамять карт на 6 и 8 ГБ; мягче выглядят только поверхности вблизи. «Авто» выбирает по объёму видеопамяти.",
[UI_MENU_TEX_DETAIL_AUTO] = "Авто: %s",
[UI_MENU_TEX_DETAIL_FULL] = "Полная", [UI_MENU_TEX_DETAIL_REDUCED] = "Сниженная", [UI_MENU_TEX_DETAIL_LOW] = "Низкая",
[UI_MENU_SHARPNESS] = "Резкость FSR",
[UI_MENU_SHARPNESS_DESC] = "Насколько FSR повышает резкость. 0 отключает.",
[UI_MENU_SHARPNESS_NEEDS_FSR] = "только с AMD FSR 1",
[UI_MENU_COLOR] = "Цвет",
[UI_MENU_COLOR_PRESET] = "Цветовой профиль",
[UI_MENU_COLOR_PRESET_DESC] = "Задаёт четыре значения ниже. «Яркий»: больше контраста и насыщенности, тени немного "
"светлее (для OLED-экранов). «Чёткость»: немного больше контраста, насыщенности и "
"яркости. Изменение любого значения делает профиль «Своим». Интерфейс игры меняется "
"вместе с картинкой, это меню — нет.",
[UI_MENU_COLOR_DEFAULT] = "Как в игре", [UI_MENU_COLOR_VIVID] = "Яркий (OLED)", [UI_MENU_COLOR_CLARITY] = "Чёткость",
[UI_MENU_COLOR_CUSTOM] = "Свой",
[UI_MENU_COLOR_BRIGHTNESS] = "Яркость", [UI_MENU_COLOR_BRIGHTNESS_DESC] = "Прибавляется к каждому цвету; 0 — без изменений.",
[UI_MENU_COLOR_CONTRAST] = "Контраст",
[UI_MENU_COLOR_CONTRAST_DESC] = "Отдаляет цвета от среднего серого (выше 100 %) или приближает к нему; 100 % — без "
"изменений.",
[UI_MENU_COLOR_SATURATION] = "Насыщенность",
[UI_MENU_COLOR_SATURATION_DESC] = "Сила цвета относительно серого; 100 % — без изменений.",
[UI_MENU_COLOR_GAMMA] = "Гамма",
[UI_MENU_COLOR_GAMMA_DESC] = "Ниже 1 осветляет тёмные и средние тона, выше 1 затемняет их; 1 — без изменений.",
[UI_MENU_HDR_GROUP] = "HDR",
[UI_MENU_HDR] = "Вывод HDR",
[UI_MENU_HDR_DESC] = "Более яркие блики на HDR-экране. Сначала включите HDR в Windows.",
[UI_MENU_HDR_PEAK] = "Пиковая яркость",
[UI_MENU_HDR_PEAK_DESC] = "Пиковая яркость вашего экрана в нитах.",
[UI_MENU_HDR_GAME] = "Яркость игры",
[UI_MENU_HDR_GAME_DESC] = "Яркость белого в игре, в нитах.",
[UI_MENU_HDR_UI] = "Яркость интерфейса и меню",
[UI_MENU_HDR_UI_DESC] = "Яркость интерфейса и этого меню, в нитах.",
[UI_MENU_HDR_HUE] = "Коррекция оттенка",
[UI_MENU_HDR_HUE_DESC] = "Насколько яркие цвета сохраняют оттенок, который был до тональной кривой; при 0 они "
"смещаются вместе с кривой.",
[UI_MENU_HDR_GAMMA] = "Коррекция гаммы",
[UI_MENU_HDR_GAMMA_DESC] = "Показывает картинку так, как её показал бы экран с гаммой 2.2 или BT.1886 (2.4), для "
"которого игра делалась; «Выкл.» оставляет кривую sRGB с более светлыми тенями.",
[UI_MENU_HDR_TONEMAP] = "Тональная кривая",
[UI_MENU_HDR_TONEMAP_DESC] = "Vanilla: собственная кривая игры с яркостью SDR. PsychoV35: сцена через модель отклика "
"глаза, согласованная со средним серым и тоном игры, до пиковой яркости экрана. RenoDRT: "
"SDR-вид игры, доведённый до пика по яркости.",
[UI_MENU_HDR_EXPOSURE] = "Экспозиция",
[UI_MENU_HDR_EXPOSURE_DESC] = "Яркость всей картинки до тональной кривой; 100 % оставляет её без изменений.",
[UI_MENU_HDR_HIGHLIGHTS] = "Света",
[UI_MENU_HDR_HIGHLIGHTS_DESC] = "Яркость светлых участков; 50 оставляет их без изменений.",
[UI_MENU_HDR_SHADOWS] = "Тени",
[UI_MENU_HDR_SHADOWS_DESC] = "Яркость тёмных участков; 50 оставляет их без изменений.",
[UI_MENU_HDR_CONTRAST] = "Контраст",
[UI_MENU_HDR_CONTRAST_DESC] = "Контраст вокруг среднего серого; 50 оставляет его без изменений.",
[UI_MENU_HDR_SATURATION] = "Насыщенность",
[UI_MENU_HDR_SATURATION_DESC] = "Сила всех цветов; 50 оставляет её без изменений.",
[UI_MENU_HDR_HIGHLIGHT_SAT] = "Насыщенность светов",
[UI_MENU_HDR_HIGHLIGHT_SAT_DESC] = "Сила цвета самых ярких участков; 50 оставляет её без изменений.",
[UI_MENU_HDR_BLOWOUT] = "Выгорание",
[UI_MENU_HDR_BLOWOUT_DESC] = "Уводит самые яркие участки к белому; 0 сохраняет их цвет.",
[UI_MENU_HDR_FLARE] = "Засветка",
[UI_MENU_HDR_FLARE_DESC] = "Приподнимает самые тёмные участки, как немного рассеянного света; 0 оставляет чёрное чёрным.",
[UI_MENU_HDR_GRADE] = "Цветокоррекция игры",
[UI_MENU_HDR_GRADE_DESC] = "Сколько собственной цветокоррекции игры сохраняет HDR-картинка; 0 — сцена без неё.",
[UI_MENU_HDR_MIDGRAY] = "Средний серый",
[UI_MENU_HDR_MIDGRAY_DESC] = "Куда попадает средний серый сцены. Vanilla: туда же, куда его ставит кривая игры. "
"Render: на значение сцены, чуть темнее.",
[UI_MENU_HDR_MATCH_SLOPE] = "Наклон тона как в игре",
[UI_MENU_HDR_MATCH_SLOPE_DESC] = "Даёт средним тонам контраст собственной кривой игры.",
[UI_MENU_HDR_TONE_SLOPE] = "Наклон тона",
[UI_MENU_HDR_TONE_SLOPE_DESC] = "Крутизна тональной кривой у среднего серого; 50 оставляет её без изменений.",
[UI_MENU_HDR_HUE_CLIP] = "Имитация сдвига оттенка",
[UI_MENU_HDR_HUE_CLIP_DESC] = "Насколько яркие цвета сдвигаются так, как при обрезке в SDR-картинке игры: огонь к "
"жёлтому и белому. 0 сохраняет их оттенок.",
[UI_MENU_SHADOW_SCALE] = "Разрешение теней",
[UI_MENU_SHADOW_SCALE_DESC] = "Более чёткие тени. Выше — больше нагрузка на видеокарту.",
[UI_MENU_PCSS] = "Мягкие тени",
[UI_MENU_PCSS_DESC] = "Тени от солнца резкие там, где предмет касается земли, и мягче, чем дальше падает тень "
"(PCSS). 0 оставляет фильтр игры. Действует после перезапуска.",
[UI_MENU_CONTACT_SHADOWS] = "Контактные тени",
[UI_MENU_CONTACT_SHADOWS_DESC] = "Мелкие тени от солнца, которых нет на картах теней: у ног, под камнями, в траве и "
"складках. Считаются по экрану после освещения. Действует после перезапуска.",
[UI_MENU_SHADOW_RANGE] = "Дальность каскадов теней",
[UI_MENU_SHADOW_RANGE_DESC] = "Сохраняет чёткие тени на большем расстоянии.",
[UI_MENU_DLAA] = "NVIDIA DLSS / DLAA",
[UI_MENU_DLAA_DESC] = "NVIDIA DLSS для 3D-сцены (видеокарты NVIDIA RTX; " DLSS_FILE " рядом с " EXE_FILE "): ровнее "
"края и меньше мерцания. Интерфейс не затрагивается. Режим ниже задаёт разрешение, с которым он "
"работает. Действует после перезапуска.",
[UI_MENU_DLSS_PRESET] = "Модель DLSS",
[UI_MENU_DLSS_PRESET_DESC] = "Какая модель DLSS работает. «Автоматически» следует совету NVIDIA для каждого режима: K "
"для DLAA, «Качества» и «Баланса», M для «Производительности», L для «Макс. "
"производительности». J: чуть меньше шлейфов за движущимися персонажами, немного больше "
"мерцания. K: самая чёткая модель во всех режимах. Действует сразу.",
[UI_MENU_DLSS_PRESET_DEFAULT] = "Автоматически", [UI_MENU_DLSS_PRESET_K] = "K (самая чёткая)",
[UI_MENU_DLSS_PRESET_J] = "J (меньше шлейфов)",
[UI_MENU_DLSS_CHARS] = "Шлейфы персонажей в DLSS",
[UI_MENU_DLSS_CHARS_DESC] = "Убирает слабые шлейфы за движущимися персонажами, животными и тем, что они держат: DLSS "
"берёт там меньше от прошлых кадров. Чем сильнее, тем меньше шлейфов и тем чуть менее "
"гладкие края. Действует сразу.",
[UI_MENU_DLSS_CHARS_OFF] = "Выкл.", [UI_MENU_DLSS_CHARS_LIGHT] = "Слабо", [UI_MENU_DLSS_CHARS_MEDIUM] = "Средне",
[UI_MENU_DLSS_CHARS_FULL] = "Полностью",
[UI_MENU_DLSS] = "Режим DLSS",
[UI_MENU_DLSS_DESC] = "DLAA рисует 3D-сцену в полном разрешении. «Качество», «Баланс», «Производительность» и "
"«Макс. производительность» рисуют её в 67, 58, 50 и 33 % и масштабируют через DLSS, что "
"экономит время видеокарты; они заменяют масштаб 3D-отрисовки. Действует сразу.",
[UI_MENU_DLSS_DLAA] = "DLAA (родное)", [UI_MENU_DLSS_QUALITY] = "Качество", [UI_MENU_DLSS_BALANCED] = "Баланс",
[UI_MENU_DLSS_PERFORMANCE] = "Производительность", [UI_MENU_DLSS_ULTRA] = "Макс. производительность",
[UI_MENU_FXAA] = "Сглаживание игры (FXAA)",
[UI_MENU_FXAA_DESC] = "Собственное сглаживание FXAA. Слегка размывает мелкие детали; с DLAA оно не нужно.",
[UI_MENU_AA] = "Сглаживание",
[UI_MENU_AA_DESC] = "Как сглаживаются края 3D-картинки. SMAA игры — собственное, как на консоли. «Выкл.» оставляет края "
"как есть. FXAA быстрое и слегка мягкое. SMAA находит больше краёв, чем игровое, и сохраняет "
"чёткость. TAA — это DLSS или FSR в полном размере: самые устойчивые края в движении; задаёт "
"масштабирование. Когда в Upscaling выбран DLSS или FSR, их TAA работает всегда, а "
"выбранное здесь — вместе с ним. Действует сразу.",
[UI_MENU_AA_GAME] = "SMAA игры",
[UI_MENU_AA_FXAA] = "FXAA",
[UI_MENU_AA_SMAA] = "SMAA (Ultra)",
[UI_MENU_AA_TAA_DLSS] = "TAA (NVIDIA DLAA)",
[UI_MENU_AA_TAA_FSR] = "TAA (AMD FSR 3.1)",
[UI_MENU_AA_TAA_FSR4] = "TAA (%s)",
[UI_MENU_AA_WITH_TAA] = "плюс TAA из Upscaling",
[UI_MENU_FPS_LIMIT] = "Ограничение частоты кадров",
[UI_MENU_FPS_LIMIT_DESC] = "Максимальная частота кадров, которые рисует игра. Генерация кадров добавляет свои сверх неё.",
[UI_MENU_FPS_30] = "30 FPS", [UI_MENU_FPS_40] = "40 FPS", [UI_MENU_FPS_45] = "45 FPS",
[UI_MENU_FPS_60] = "60 FPS", [UI_MENU_FPS_90] = "90 FPS", [UI_MENU_FPS_120] = "120 FPS", [UI_MENU_FPS_144] = "144 FPS",
[UI_MENU_FPS_DISPLAY] = "Как у монитора", [UI_MENU_FPS_DISPLAY_HZ] = "Как у монитора (%.0f Гц)",
[UI_MENU_FPS_UNLIMITED] = "Без ограничения",
[UI_MENU_FPS_RTSS] = "ограничивает RivaTuner Statistics Server",
[UI_MENU_FPS_RTSS_READONLY] = "RivaTuner нужен запуск игры от администратора",
[UI_MENU_FPS_RTSS_IGNORED] = "RivaTuner не ограничивает эту игру; ограничивает игра",
[UI_MENU_FPS_RTSS_TWO] = "действует и ограничение самого RivaTuner: два ограничителя",
[UI_MENU_REALTIME] = "Скорость игры по часам",
[UI_MENU_REALTIME_DESC] = "Игра идёт по реальному времени, медленный кадр её не замедляет.",
[UI_MENU_CLOTH_REALTIME] = "Ткань по часам",
[UI_MENU_CLOTH_REALTIME_DESC] = "Ткань и волосы тоже идут по реальному времени.",
[UI_MENU_HIGHFPS_FIX] = "Исправления для высокого FPS",
[UI_MENU_HIGHFPS_FIX_DESC] = "Исправляет физику, которая ломается при частоте выше 30 кадров в секунду, и объекты, которые выше 60 остаются полупрозрачными или невидимыми.",
[UI_MENU_GAME_LANG] = "Язык игры", [UI_MENU_GAME_LANG_DESC] = "Язык текста и озвучки игры.",
[UI_MENU_GAME_LANG_AUTO] = "Автоматически",
[UI_MENU_OPERATION_MODE] = "Режим консоли",
[UI_MENU_OPERATION_MODE_DESC] = "Запускает игру как в док-станции или в портативном режиме.",
[UI_MENU_MODE_DOCKED] = "В док-станции", [UI_MENU_MODE_HANDHELD] = "Портативный",
[UI_MENU_ASSUME_FOCUS] = "Работать без фокуса",
[UI_MENU_ASSUME_FOCUS_DESC] = "Игра продолжает работать, когда вы переключаетесь на другое окно.",
[UI_MENU_TEXT_SPEED] = "Скорость текста",
[UI_MENU_TEXT_SPEED_DESC] = "Как быстро окна сообщений игры показывают текст. Быстро: в три раза быстрее; "
"мгновенно: каждая страница сразу целиком. Текст, который игра не даёт ускорить, "
"например реплики в такт сценке или голосу, идёт с обычной скоростью.",
[UI_MENU_TEXT_SPEED_NORMAL] = "Обычная", [UI_MENU_TEXT_SPEED_FAST] = "Быстро",
[UI_MENU_TEXT_SPEED_INSTANT] = "Мгновенно",
[UI_MENU_MODS_BUILTIN] = "Встроенные в порт", [UI_MENU_MODS_INSTALLED] = "Установленные моды",
[UI_MENU_MODS_NONE] = "Модов пока нет. Распакуйте мод в папку mods, каждый мод в свою папку с папкой romfs внутри, и "
"перезапустите игру. Менеджер модов тоже может выгрузить туда объединённые моды отдельной папкой.",
[UI_MENU_MODS_OPEN] = "Открыть папку модов",
[UI_MENU_MODS_OPEN_DESC] = "Показывает папку, из которой игра загружает моды. Если её нет, она будет создана.",
[UI_MENU_MODS_ROW_DESC] = "Заменяет файлов игры: %u. Добавляет новых файлов: %u.",
[UI_MENU_MODS_OVERRIDDEN] = "%u его файлов берутся из мода %s, он выше в списке.",
[UI_MENU_MODS_MOVE_HINT] = "Верхняя кнопка или Ctrl+Вверх поднимает мод, левая кнопка или Ctrl+Вниз опускает. Если "
"два мода меняют один файл, побеждает верхний. Изменения действуют после перезапуска.",
[UI_MENU_MODS_EMPTY] = "В этой папке нет файлов romfs, exefs или cheats.",
[UI_MENU_MODS_SUBSDK] = "Этот мод приносит свой код игры (плагин subsdk или заменённый main). Порт не загружает "
"модули кода, поэтому мод выключен целиком.",
[UI_MENU_MODS_EXEFS_LATER] = "Этот мод меняет код игры (exefs). Игра соберёт эти патчи при следующем запуске "
"(пересборка на несколько минут); до тех пор мод выключен целиком.",
[UI_MENU_MODS_CHEATS] = "Читов: %d. Они включаются на вкладке «Читы».",
[UI_MENU_MODS_CHEATS_FILE] = "Читы для этой версии игры читаются при запуске из cheats\\%s в этом моде.",
[UI_MENU_MODS_BAD_NAME] = "В имени папки есть символ |, которым список модов разделяет имена. Переименуйте папку.",
[UI_MENU_MODS_OTHER_VERSION] = "Файлов для другой версии игры: %u, они пропущены. Поищите версию этого мода для "
"вашей версии игры.",
[UI_MENU_MODS_UNUSED] = "не используется",
[UI_MENU_MODS_FPS60] = "Патч 60 FPS",
[UI_MENU_MODS_FPS60_DESC] = "Собственный патч порта для 60 кадров в секунду. Настраивается «Ограничением частоты "
"кадров» на вкладке «Игра».",
[UI_MENU_MODS_RES] = "Патч разрешения",
[UI_MENU_MODS_RES_DESC] = "Собственный патч порта для разрешений выше 1080p. Настраивается «Разрешением игры» на "
"вкладке «Экран».",
[UI_MENU_MODS_QUICKMENU] = "Исправление быстрого меню",
[UI_MENU_MODS_QUICKMENU_DESC] = "Исправление порта: чёрный фон меню оружия, щитов и материалов при 60 FPS.",
[UI_MENU_VOLUME] = "Громкость", [UI_MENU_VOLUME_DESC] = "Общая громкость игры.", [UI_MENU_MENU_SOUNDS] = "Звуки меню", [UI_MENU_MENU_SOUNDS_DESC] = "Громкость звуков этого меню.",
[UI_MENU_AUDIO_CHANNELS] = "Динамики",
[UI_MENU_AUDIO_CHANNELS_DESC] = "Стерео или объёмный звук 5.1.",
[UI_MENU_CHANNELS_AUTO] = "Автоматически", [UI_MENU_CHANNELS_STEREO] = "Стерео", [UI_MENU_CHANNELS_51] = "Объёмный 5.1",
[UI_MENU_MOTION] = "Управление движением", [UI_MENU_MOTION_DESC] = "Прицеливание гироскопом контроллера.",
[UI_MENU_RUMBLE_STRENGTH] = "Сила вибрации",
[UI_MENU_RUMBLE_STRENGTH_DESC] = "Сила вибрации.",
[UI_MENU_RUMBLE_CURVE] = "Кривая вибрации",
[UI_MENU_RUMBLE_CURVE_DESC] = "Чем ниже, тем сильнее слабая вибрация.",
[UI_MENU_RUMBLE_TRIGGERS] = "Вибрация триггеров (Xbox)",
[UI_MENU_RUMBLE_TRIGGERS_DESC] = "Вибрация также на курках контроллера Xbox.",
[UI_MENU_RUMBLE_HD] = "HD-вибрация (Switch)",
[UI_MENU_RUMBLE_HD_DESC] = "Передаёт детальную вибрацию игры на Switch Pro Controller или Joy-Con без изменений. "
"Сила вибрации по-прежнему действует: значение по умолчанию — как в игре.",
[UI_MENU_RUMBLE_HD_NEEDS] = "Нужен Switch Pro Controller или Joy-Con",
[UI_MENU_PAD_LAYOUT] = "Раскладка кнопок",
[UI_MENU_PAD_LAYOUT_DESC] = "Какая кнопка работает как A. Nintendo: по положению, A справа, B снизу, X сверху, "
"Y слева. Xbox и PlayStation: по подписи, A снизу, B справа, X слева, Y сверху (на "
"контроллере PlayStation крест, круг, квадрат и треугольник). Автоматически: "
"Nintendo для контроллера с подписями Nintendo, по подписи для остальных.",
[UI_MENU_PAD_LAYOUT_AUTO] = "Автоматически", [UI_MENU_PAD_LAYOUT_NINTENDO] = "Nintendo (A справа)",
[UI_MENU_PAD_LAYOUT_XBOX] = "Xbox (A снизу)", [UI_MENU_PAD_LAYOUT_PLAYSTATION] = "PlayStation (A снизу)",
[UI_MENU_PAD_LAYOUT_IN_USE] = "сейчас: %s",
[UI_MENU_PROMPTS] = "Подсказки кнопок",
[UI_MENU_PROMPTS_DESC] = "Какие кнопки показывают подсказки игры: в тексте, в подсказке действия и на нотах "
"окарины. Nintendo: как в самой игре. Xbox и PlayStation: кнопки этого контроллера (LB, "
"RB, LT, RT, Menu, View; L1, R1, L2, R2, Options, Create), а A, B, X и Y показаны той "
"кнопкой, которую нажимает раскладка выше (в Nintendo (A справа) A делает правая кнопка, "
"и подсказки A показывают B или круг). Клавиатура и мышь: клавиша каждой кнопки (E, Ctrl, "
"пробел, левый клик...), WASD для движения и мышь для камеры. Файлы подсказок создаются "
"из картинок кнопок программой tools/pad_prompts.py, клавиши берутся из nx2navi.ini на "
"момент её запуска. Игра читает подсказки при запуске, так что они меняются после "
"перезапуска. Подсказки записаны в файлах игры, поэтому у кнопки, переназначенной на "
"вкладке управления, на экране остаётся прежняя подсказка, пока файлы не созданы заново.",
[UI_MENU_PROMPTS_NINTENDO] = "Nintendo", [UI_MENU_PROMPTS_XBOX] = "Xbox",
[UI_MENU_PROMPTS_PLAYSTATION] = "PlayStation", [UI_MENU_PROMPTS_STEAMDECK] = "Steam Deck",
[UI_MENU_PROMPTS_PC] = "Клавиатура и мышь",
[UI_MENU_PROMPTS_MISSING] = "нет файлов подсказок: их создаёт tools/pad_prompts.py",
[UI_MENU_PROMPTS_FAILED] = "файлы подсказок повреждены: создайте их снова tools/pad_prompts.py",
[UI_MENU_PROMPTS_RESTART] = "подсказки сменятся после перезапуска",
[UI_MENU_PROMPTS_OFF_SHAPE] = "выкл. при разрешении игры не 16:9",
[UI_MENU_PROMPTS_OFF_MODS] = "выкл.: мод RomFS заменяет их файлы",
[UI_MENU_PROMPTS_OFF_PATCHES] = "выкл., пока задан NX2NAVI_ROMFS_PATCHES",
[UI_MENU_RESTART] = "Перезапустить сейчас",
[UI_MENU_RESTART_DESC] = "Закрывает игру и запускает её снова с новыми подсказками. Прогресс после последнего "
"сохранения будет потерян.",
[UI_MENU_RESTART_CONFIRM] = "Перезапустить игру сейчас? Прогресс после последнего сохранения будет потерян.",
[UI_MENU_QUIT_CONFIRM] = "Выйти из игры? Прогресс после последнего сохранения будет потерян.",
[UI_MENU_RESTART_YES] = "Перезапустить",
[UI_MENU_RESTART_COUNT] = "Перезапустить (%d)",
[UI_MENU_RESTART_SAVING] = "Игра сохраняется: перезапуск будет доступен через мгновение.",
[UI_MENU_QUIT_SAVING] = "Игра сохраняется: выход будет доступен через мгновение.",
[UI_MENU_GROUP_STICKS] = "Стики",
[UI_MENU_LSTICK_DEADZONE] = "Мёртвая зона левого стика", [UI_MENU_RSTICK_DEADZONE] = "Мёртвая зона правого стика",
[UI_MENU_STICK_DEADZONE_DESC] = "Насколько нужно сдвинуть стик, чтобы он сработал. Увеличьте при дрейфе.",
[UI_MENU_STICK_DEADZONE_NOW] = "стик сейчас: %.0f %%",
[UI_MENU_MOUSE_MODE] = "Управление мышью",
[UI_MENU_MOUSE_MODE_DESC] = "Прямое: камера поворачивается на столько, на сколько сдвинута мышь, как в играх для ПК, без мёртвой зоны и кривой стика (версии игры 1.1.1 и 1.4.3; на других версиях эмуляция стика). Эмуляция стика: мышь работает как правый стик.",
[UI_MENU_MOUSE_STICK] = "Эмуляция стика",
[UI_MENU_MOUSE_DIRECT] = "Прямое",
[UI_MENU_MENU_CURSOR] = "Мышь в меню игры",
[UI_MENU_MENU_CURSOR_DESC] = "В меню самой игры (заставка, инвентарь, магазины, варианты ответа) появляется указатель: пункт под ним выбирается, левый щелчок подтверждает, правый возвращает назад. Только если последними использовались мышь или клавиатура, поэтому с геймпадом меню не меняются (версия игры 1.4.3).",
[UI_MENU_MOUSE_SENS] = "Чувствительность мыши",
[UI_MENU_MOUSE_SENS_DESC] = "Как быстро мышь поворачивает камеру.",
[UI_MENU_WALK_KEY] = "Клавиша шага",
[UI_MENU_WALK_KEY_DESC] = "Удерживайте, чтобы идти шагом на клавиатуре.",
[UI_MENU_WALK_KEY_TAKEN] = "также %s",
[UI_MENU_WALK_SCALE] = "Сила шага",
[UI_MENU_WALK_SCALE_DESC] = "Отклонение стиков клавиатуры при удержании клавиши шага. Половина — шаг, полное "
"отклонение — бег.",
[UI_MENU_STICK_SENS] = "Скорость камеры (стик)",
[UI_MENU_STICK_SENS_DESC] = "Скорость камеры на правом стике.",
[UI_BINDS_HELP] = "Выберите ячейку и нажмите A или Enter, затем клавишу, кнопку мыши или кнопку контроллера. "
"Delete или X очищает ячейку. Занятая клавиша переходит сюда; кнопка контроллера меняется "
"местами с той, которую заменяет.",
[UI_BINDS_COL_KEY1] = "Клавиша 1", [UI_BINDS_COL_KEY2] = "Клавиша 2", [UI_BINDS_COL_PAD] = "Контроллер",
[UI_BINDS_GROUP_BUTTONS] = "Кнопки", [UI_BINDS_GROUP_MOVE] = "Движение", [UI_BINDS_GROUP_CAMERA] = "Камера",
[UI_BINDS_PRESS_KEY] = "Нажмите клавишу или кнопку мыши для «%s»",
[UI_BINDS_PRESS_PAD] = "Нажмите кнопку контроллера для «%s»",
[UI_BINDS_CANCEL_HINT] = "Esc отменяет, или подождите %d с",
[UI_BINDS_TAKEN] = "%s: убрано с «%s»", [UI_BINDS_SWAPPED] = "«%s» и «%s» поменялись местами",
[UI_BINDS_RESET] = "Сбросить все кнопки",
[UI_BINDS_RESET_DESC] = "Возвращает стандартные клавиши и кнопки.",
[UI_BIND_A] = "A", [UI_BIND_B] = "B", [UI_BIND_X] = "X", [UI_BIND_Y] = "Y",
[UI_BIND_LCLICK] = "Нажатие левого стика", [UI_BIND_RCLICK] = "Нажатие правого стика", [UI_BIND_L] = "L",
[UI_BIND_R] = "R", [UI_BIND_ZL] = "ZL", [UI_BIND_ZR] = "ZR", [UI_BIND_PLUS] = "Плюс", [UI_BIND_MINUS] = "Минус",
[UI_BIND_LEFT] = "Крестовина влево", [UI_BIND_UP] = "Крестовина вверх", [UI_BIND_RIGHT] = "Крестовина вправо",
[UI_BIND_DOWN] = "Крестовина вниз",
[UI_BIND_LSTICK_LEFT] = "Влево", [UI_BIND_LSTICK_UP] = "Вперёд", [UI_BIND_LSTICK_RIGHT] = "Вправо",
[UI_BIND_LSTICK_DOWN] = "Назад",
[UI_BIND_RSTICK_LEFT] = "Камера влево", [UI_BIND_RSTICK_UP] = "Камера вверх",
[UI_BIND_RSTICK_RIGHT] = "Камера вправо", [UI_BIND_RSTICK_DOWN] = "Камера вниз",
[UI_BIND_DESC_A] = "Действия: поговорить, открыть, подобрать, залезть, схватить. Удерживать — рывок.",
[UI_BIND_DESC_B] = "Убрать, отмена, назад. Прыжок, если в настройках игры включена смена кнопки прыжка.",
[UI_BIND_DESC_X] = "Прыжок. Убрать, если в настройках игры включена смена кнопки прыжка.",
[UI_BIND_DESC_Y] = "Удар мечом.",
[UI_BIND_DESC_LCLICK] = "Нажатие левого стика (нет на экране управления игры).",
[UI_BIND_DESC_RCLICK] = "Вернуть камеру за спину Линка.",
[UI_BIND_DESC_L] = "Быстрый выбор предметов; предыдущая страница в меню игры.",
[UI_BIND_DESC_R] = "Быстрый выбор предметов; следующая страница в меню игры.",
[UI_BIND_DESC_ZL] = "Захват цели (удерживать или переключать: тип захвата в настройках игры).",
[UI_BIND_DESC_ZR] = "Использовать выбранный предмет: рогатка, лук, бумеранг, крюк, бомбы, бутылки.",
[UI_BIND_DESC_PLUS] = "Меню: предметы, снаряжение, коллекция, система.", [UI_BIND_DESC_MINUS] = "Карта.",
[UI_BIND_DESC_LEFT] = "Играть на окарине.", [UI_BIND_DESC_UP] = "Надеть или снять аксессуар.",
[UI_BIND_DESC_RIGHT] = "Поговорить с Нави.", [UI_BIND_DESC_DOWN] = "Сменить сапоги.",
[UI_BIND_DESC_MOVE] = "Двигает Линка.",
[UI_BIND_DESC_CAMERA] = "Поворачивает камеру.",
[UI_BIND_SHAKE] = "Встряхнуть стик камеры",
[UI_BIND_DESC_SHAKE] = "Трясёт правый стик. Удерживайте, чтобы продолжать.",
[UI_KEY_SPACE] = "Пробел", [UI_KEY_TAB] = "Tab", [UI_KEY_LSHIFT] = "Левый Shift", [UI_KEY_LCTRL] = "Левый Ctrl",
[UI_KEY_UP] = "Стрелка вверх", [UI_KEY_DOWN] = "Стрелка вниз", [UI_KEY_LEFT] = "Стрелка влево",
[UI_KEY_RIGHT] = "Стрелка вправо",
[UI_KEY_MOUSE_L] = "ЛКМ", [UI_KEY_MOUSE_R] = "ПКМ", [UI_KEY_MOUSE_M] = "СКМ", [UI_KEY_MOUSE_X1] = "Мышь 4",
[UI_KEY_MOUSE_X2] = "Мышь 5",
[UI_KEY_ENTER] = "Enter", [UI_KEY_BACKSPACE] = "Backspace", [UI_KEY_RSHIFT] = "Правый Shift",
[UI_KEY_RCTRL] = "Правый Ctrl", [UI_KEY_LALT] = "Alt", [UI_KEY_CAPSLOCK] = "Caps Lock", [UI_KEY_INSERT] = "Insert",
[UI_KEY_DELETE] = "Delete", [UI_KEY_HOME] = "Home", [UI_KEY_END] = "End", [UI_KEY_PAGEUP] = "Page Up",
[UI_KEY_PAGEDOWN] = "Page Down", [UI_KEY_NUM_FMT] = "Num %s",
[UI_PAD_SOUTH] = "Нижняя кнопка", [UI_PAD_EAST] = "Правая кнопка", [UI_PAD_WEST] = "Левая кнопка",
[UI_PAD_NORTH] = "Верхняя кнопка", [UI_PAD_LSTICK] = "Левый стик", [UI_PAD_RSTICK] = "Правый стик",
[UI_PAD_L] = "Левый бампер", [UI_PAD_R] = "Правый бампер", [UI_PAD_START] = "Start", [UI_PAD_BACK] = "Back",
[UI_PAD_DPAD_LEFT] = "Крестовина влево", [UI_PAD_DPAD_UP] = "Крестовина вверх",
[UI_PAD_DPAD_RIGHT] = "Крестовина вправо", [UI_PAD_DPAD_DOWN] = "Крестовина вниз", [UI_PAD_ZL] = "Левый курок",
[UI_PAD_ZR] = "Правый курок",
[UI_PAD_LPADDLE1] = "Левая задняя кнопка", [UI_PAD_RPADDLE1] = "Правая задняя кнопка",
[UI_PAD_LPADDLE2] = "Левая задняя кнопка 2", [UI_PAD_RPADDLE2] = "Правая задняя кнопка 2",
[UI_PAD_CROSS] = "Крест", [UI_PAD_CIRCLE] = "Круг", [UI_PAD_SQUARE] = "Квадрат", [UI_PAD_TRIANGLE] = "Треугольник",
[UI_MENU_AMIIBO_DIR] = "Папка amiibo",
[UI_MENU_AMIIBO_OPEN] = "Открыть",
[UI_MENU_AMIIBO_DEFAULT_DIR] = "Папка по умолчанию",
[UI_MENU_AMIIBO_REFRESH] = "Обновить",
[UI_MENU_AMIIBO_PICK] = "Дампы amiibo (файлы .bin или .nfc по 540 байт):",
[UI_MENU_AMIIBO_NO_DIR] = "Не удаётся открыть папку %s",
[UI_MENU_AMIIBO_READER] = "NFC-считыватель",
[UI_MENU_AMIIBO_STATE] = "Считыватель:",
[UI_MENU_AMIIBO_STATE_IDLE] = "готов",
[UI_MENU_AMIIBO_STATE_SEARCHING] = "игра ждёт amiibo",
[UI_MENU_AMIIBO_STATE_FOUND] = "amiibo на считывателе",
[UI_MENU_AMIIBO_STATE_MOUNTED] = "игра читает amiibo",
[UI_MENU_AMIIBO_STATE_OFF] = "выключен",
[UI_MENU_AMIIBO_FILE] = "Выбранный файл:",
[UI_MENU_AMIIBO_NO_FILE] = "(файл не выбран)",
[UI_MENU_AMIIBO_TAP] = "Приложить amiibo",
[UI_MENU_AMIIBO_REMOVE] = "Убрать amiibo",
[UI_MENU_AMIIBO_AUTO_REMOVE] = "Убирать amiibo само после касания",
[UI_MENU_AMIIBO_HOLD] = "Время на считывателе",
[UI_MENU_AMIIBO_SECONDS] = "%.1f с",
[UI_MENU_AMIIBO_TAG] = "Amiibo на считывателе:",
[UI_MENU_AMIIBO_NO_TAG] = "На считывателе нет amiibo.",
[UI_MENU_AMIIBO_TAG_FILE] = "Файл: %s",
[UI_MENU_AMIIBO_TAG_ID] = "Персонаж %s, серия %02x, номер %04x, тип %02x",
[UI_MENU_AMIIBO_TAG_UID] = "UID: %s",
[UI_MENU_AMIIBO_READY] = "Готово",
[UI_MENU_AMIIBO_TAPPED] = "Приложен: %s",
[UI_MENU_AMIIBO_LOAD_FAILED] = "Не дамп amiibo (NTAG215, 540 байт): %s",
[UI_MENU_AMIIBO_REMOVED] = "Amiibo убран",
[UI_MENU_AMIIBO_STATUS] = "Состояние: %s",
[UI_MENU_MENU_LANG] = "Язык меню", [UI_MENU_MENU_LANG_DESC] = "Язык этого меню и индикатора.",
[UI_MENU_MENU_LANG_AUTO] = "Автоматически (из Windows)",
[UI_MENU_DISCORD_RPC] = "Discord Rich Presence",
[UI_MENU_DISCORD_RPC_DESC] = "Пока игра запущена, показывает «Играю в NX2navi» со временем игры в статусе "
"Discord. Приложение выбирают discord_app_id и discord_image в nx2navi.ini.",
[UI_MENU_ADV_WARNING] = "Эти настройки нужны для тестов и поиска неполадок. Меняйте их, только если знаете зачем.",
[UI_MENU_GROUP_SCHED] = "Планирование", [UI_MENU_GROUP_SHADERS] = "Шейдеры и конвейеры",
[UI_MENU_GROUP_TEXMEM] = "Текстуры и память", [UI_MENU_GROUP_FIXES] = "Исправления графики",
[UI_MENU_GROUP_VULKAN] = "Vulkan", [UI_MENU_GROUP_DIAG] = "Диагностика",
[UI_MENU_ASYNC_PREEMPT] = "Вытеснение на виртуальных ядрах",
[UI_MENU_ASYNC_PREEMPT_DESC] = "Позволяет потоку игры прервать другой поток на том же виртуальном ядре.",
[UI_MENU_PREEMPT_OFF] = "Выкл.", [UI_MENU_PREEMPT_ON] = "Вкл.", [UI_MENU_PREEMPT_INHERIT] = "Только наследование",
[UI_MENU_REPLAY_ASYNC] = "Подготовка кадра для GPU в отдельном потоке",
[UI_MENU_REPLAY_ASYNC_DESC] = "Кадр для GPU готовится в отдельном потоке, а не в потоке игры. Быстрее в тяжёлых сценах, но иногда может показать тёмный или мерцающий кадр и добавляет до одного кадра задержки.",
[UI_MENU_TIMER_1MS] = "Таймер Windows 1 мс",
[UI_MENU_TIMER_1MS_DESC] = "Повышает точность системного таймера до 1 мс для ровного темпа кадров.",
[UI_MENU_PIPE_WAIT] = "Обработка ожидающих отрисовок",
[UI_MENU_PIPE_WAIT_DESC] = "«По умолчанию» — текущее планирование с отдельным потоком для ожидающих отрисовок; «Старый способ» — прежнее планирование.",
[UI_MENU_PIPE_WAIT_DEFAULT] = "По умолчанию", [UI_MENU_PIPE_WAIT_DRAW] = "Старый способ",
[UI_MENU_PIPE_SKIP] = "Пропуск отрисовок при сборке конвейера",
[UI_MENU_PIPE_SKIP_DESC] = "Какие отрисовки отбрасываются, а не ждут свой конвейер.",
[UI_MENU_PIPE_SKIP_STRICT] = "Строго", [UI_MENU_PIPE_SKIP_ANY] = "Любые",
[UI_MENU_PIPE_SKIP_FULLSCREEN] = "Полноэкранные проходы",
[UI_MENU_LIB_PREBUILD] = "Предсборка библиотек стадий",
[UI_MENU_LIB_PREBUILD_DESC] = "Заранее собирает библиотеки стадий шейдеров в фоне.",
[UI_MENU_LIB_PREBUILD_THREADS] = "Потоки предсборки библиотек",
[UI_MENU_LIB_PREBUILD_THREADS_DESC] = "Сколько потоков занято предсборкой; «Автоматически» — по числу ядер процессора.",
[UI_MENU_PIPE_PREBUILD] = "Предсборка конвейеров",
[UI_MENU_PIPE_PREBUILD_DESC] = "Заранее собирает известные конвейеры.",
[UI_MENU_PREWARM_XLATE] = "Прогрев транслятора",
[UI_MENU_PREWARM_XLATE_DESC] = "Потоки, которые при запуске переводят известные шейдеры; «Автоматически» — половина потоков процессора, не больше 16.",
[UI_MENU_GPL] = "Библиотека графических конвейеров",
[UI_MENU_GPL_DESC] = "Использует расширение Vulkan для библиотек конвейеров; выключите, если драйвер с ним сбоит.",
[UI_MENU_ASTC] = "Распаковка текстур ASTC", [UI_MENU_ASTC_DESC] = "Где распаковываются сжатые текстуры ASTC.",
[UI_MENU_ASTC_AUTO] = "Автоматически", [UI_MENU_ASTC_GPU] = "Шейдер GPU", [UI_MENU_ASTC_NATIVE] = "Аппаратно",
[UI_MENU_ASTC_CPU] = "Процессор",
[UI_MENU_MEMORY] = "Режим памяти GPU", [UI_MENU_MEMORY_DESC] = "Как память игры передаётся видеокарте.",
[UI_MENU_MEMORY_AUTO] = "Автоматически", [UI_MENU_MEMORY_IMPORT] = "Импорт", [UI_MENU_MEMORY_MIRROR] = "Зеркало",
[UI_MENU_MEMORY_VERIFY] = "Проверка",
[UI_MENU_TEX_ALIAS] = "Наследование содержимого текстур", [UI_MENU_TEX_ALIAS_DESC] = "Новая текстура поверх памяти живой текстуры получает её содержимое, а не пустую.",
[UI_MENU_TEX_VRAM_PRESSURE] = "Предел памяти текстур", [UI_MENU_TEX_VRAM_PRESSURE_DESC] = "Процент видеопамяти, выше которого освобождённые игрой текстуры удаляются (при повторном использовании загружаются снова). 0 — не удалять.",
[UI_MENU_ASTC_BC] = "Сжатие ASTC в BC3", [UI_MENU_ASTC_BC_DESC] = "С декодером на GPU: декодированные текстуры ASTC пересжимаются в BC3 и занимают вчетверо меньше видеопамяти. Текстуры чуть более блочные. Авто: включено на видеокартах с 4 ГБ видеопамяти и меньше.",
[UI_MENU_LOD_GUARD] = "Защита LOD", [UI_MENU_LOD_GUARD_DESC] = "Не даёт объектам мелькать не на своём месте, а дальнему плану — на кадр становиться плоским: ждёт, пока игра допишет данные уровней детализации, и только потом их читает GPU.",
[UI_MENU_FIX_C0] = "Исправление константного буфера",
[UI_MENU_FIX_C0_DESC] = "Заполняет зарезервированный драйвером банк констант c0 (размеры хранилищ, размер запуска, размер точки, базовый экземпляр) вместо чтения нулей.",
[UI_MENU_FIX_ZERO] = "Обнулять новую память GPU",
[UI_MENU_FIX_ZERO_DESC] = "Новые пулы памяти GPU заполняются нулями, как память Switch.",
[UI_MENU_BIND_SKIP] = "Пропуск повторных привязок",
[UI_MENU_BIND_SKIP_DESC] = "Оптимизация: пропускает неизменившиеся привязки.",
[UI_MENU_SHADER_MEMO] = "Память шейдеров", [UI_MENU_SHADER_MEMO_DESC] = "Оптимизация: запоминает поиск шейдеров.",
[UI_MENU_PIPE_MEMO] = "Память конвейера", [UI_MENU_PIPE_MEMO_DESC] = "Оптимизация: повторяет конвейер прошлой отрисовки, если её состояние не изменилось.",
[UI_MENU_TEX_MEMO] = "Память привязок текстур", [UI_MENU_TEX_MEMO_DESC] = "Оптимизация: запоминает дескрипторы текстур между отрисовками.",
[UI_MENU_DESC_TEMPLATE] = "Шаблоны дескрипторов",
[UI_MENU_DESC_TEMPLATE_DESC] = "Оптимизация: обновляет дескрипторы пачками.",
[UI_MENU_PUSH_SKIP] = "Пропуск повторных push-констант",
[UI_MENU_PUSH_SKIP_DESC] = "Оптимизация: пропускает неизменившиеся push-константы.",
[UI_MENU_SPLIT_DRAWS] = "Ранняя отправка работы GPU",
[UI_MENU_SPLIT_DRAWS_DESC] = "Отправляет работу GPU частями через каждые N отрисовок между проходами, чтобы GPU начинал раньше; 0 — выключено.",
[UI_MENU_VK_VALIDATION] = "Слой проверки",
[UI_MENU_VK_VALIDATION_DESC] = "Проверяет каждый вызов Vulkan и сильно замедляет игру.",
[UI_MENU_VK_VALIDATION_MISSING] = "Слой проверки не установлен.",
[UI_MENU_VK_DYN_VERTEX] = "Динамическое состояние вершин",
[UI_MENU_VK_DYN_VERTEX_DESC] = "Принудительно включает или выключает динамический ввод вершин; по умолчанию зависит от GPU.",
[UI_MENU_VK_DYN_A2C] = "Динамический alpha to coverage",
[UI_MENU_VK_DYN_A2C_DESC] = "Принудительно включает или выключает динамический alpha to coverage. По умолчанию "
"выключен на драйвере AMD для RDNA 2 и старше, где с ним персонажи чёрные, и включён "
"на остальных.",
[UI_MENU_VK_SUBGROUP_PIN] = "Фиксировать размер подгруппы",
[UI_MENU_VK_SUBGROUP_PIN_DESC] = "Фиксирует размер подгруппы шейдера.",
[UI_MENU_TRACE] = "Журнал производительности", [UI_MENU_TRACE_DESC] = "Пишет время кадров в файл.",
[UI_MENU_FLIGHT] = "Запись последних кадров (для отчёта о фризе)",
[UI_MENU_FLIGHT_DESC] = "Хранит короткую историю и сохраняет её, когда кадр подвисает.",
[UI_MENU_FLIGHT_SPIKE_MS] = "Порог подвисания (мс)",
[UI_MENU_FLIGHT_SPIKE_MS_DESC] = "Время кадра, которое считается подвисанием.",
[UI_MENU_PASS_CRUMBS] = "Метки проходов GPU",
[UI_MENU_PASS_CRUMBS_DESC] = "После сбоя GPU журнал называет проход отрисовки, который выполнялся. Автоматически: только AMD. Вкл.: также NVIDIA, с небольшой нагрузкой.",
[UI_MENU_INPUT_RECORD] = "Запись ввода",
[UI_MENU_INPUT_RECORD_DESC] = "Пишет ваш ввод в файл для отчёта об ошибке.",
[UI_MENU_OPEN_LOG] = "Открыть папку журналов", [UI_MENU_OPEN_LOG_DESC] = "Показывает папку с файлами журнала.",
[UI_MENU_COPY_INFO] = "Копировать сведения о системе",
[UI_MENU_COPY_INFO_DESC] = "Копирует в буфер обмена видеокарту, драйвер, процессор, память и изменённые настройки.",
[UI_MENU_COPY_INFO_DONE] = "Скопировано", [UI_MENU_ACTION_FAILED] = "не получилось",
[UI_MENU_RESET] = "Сбросить все настройки", [UI_MENU_RESET_DESC] = "Действует на все вкладки.",
[UI_MENU_RESET_CONFIRM] = "Сбросить все настройки к значениям по умолчанию?", [UI_MENU_RESET_YES] = "Сбросить",
[UI_MENU_RESET_NO] = "Отмена",
[UI_MENU_OV_FPS] = "%.0f FPS", [UI_MENU_OV_FRAME_MS] = "%.1f мс", [UI_MENU_OV_GAME_PCT] = "игра %.0f%%",
[UI_MENU_OV_MAX_MS] = "макс. %.1f мс",
[UI_MENU_OV_FPS_LABEL] = "FPS", [UI_MENU_OV_FRAME_LABEL] = "Кадр", [UI_MENU_OV_FMT_FPS] = "%.0f",
[UI_MENU_OV_LOW1] = "1%% худших %.0f", [UI_MENU_OV_LOW01] = "0.1%% худших %.0f",
[UI_MENU_OV_GPU] = "GPU", [UI_MENU_OV_CPU] = "ЦП", [UI_MENU_OV_RAM] = "ОЗУ", [UI_MENU_OV_VRAM] = "Видеопамять",
[UI_MENU_OV_TEMP] = "Температура", [UI_MENU_OV_POWER] = "Мощность", [UI_MENU_OV_CLOCK] = "Частота",
[UI_MENU_OV_NONE] = "-",
[UI_MENU_OV_REPLAY] = "Подготовка кадра для GPU", [UI_MENU_OV_GPU_TIME] = "Занятость GPU за кадр",
[UI_MENU_OV_PIPE_WAIT] = "Ожидания конвейеров",
[UI_MENU_OV_SHADER_WAIT] = "Ожидания шейдеров", [UI_MENU_OV_TEX_UPLOADS] = "Загрузки текстур",
[UI_MENU_OV_FMT_PCT] = "%.0f%%", [UI_MENU_OV_FMT_TEMP] = "%.0f °C", [UI_MENU_OV_FMT_POWER] = "%.0f Вт",
[UI_MENU_OV_FMT_MHZ] = "%.0f МГц", [UI_MENU_OV_FMT_GB] = "%.1f ГБ", [UI_MENU_OV_FMT_GB_OF] = "/ %.1f ГБ",
[UI_MENU_OV_GAME_GB] = "игра %.1f ГБ", [UI_MENU_OV_FMT_MS] = "%.2f мс", [UI_MENU_OV_PER_FRAME] = "%.1f за кадр",
[UI_MENU_OV_WINDOW] = "Окно", [UI_MENU_OV_OUTPUT] = "Изображение игры", [UI_MENU_OV_SCENE] = "3D-сцена",
[UI_MENU_OV_SCALING] = "Масштабирование", [UI_MENU_OV_LIMIT] = "Лимит кадров", [UI_MENU_OV_PRESENT] = "Вывод кадров",
[UI_MENU_OV_FMT_SIZE] = "%ux%u", [UI_MENU_OV_FMT_SCENE] = "%ux%u, %.0f%%",
[UI_MENU_OV_FMT_FSR] = "AMD FSR 1, резкость %d%%", [UI_MENU_OV_SCALE_NONE] = "нет (1:1)",
[UI_MENU_OV_FMT_SHRINK] = "билинейное + резкость FSR %d%%",
[UI_MENU_OV_SCALE_BILINEAR] = "билинейное",
[UI_MENU_OV_SCALE_DOWN] = "билинейное (резкость FSR 0)",
[UI_MENU_TAB_CHEATS] = "Читы",
[UI_MENU_CHEATS_NONE] = "Для этой версии игры читов нет. Читы мода — это файл читов Atmosphere в его папке cheats "
"с именем по сборке игры: mods\\<мод>\\cheats\\%s. Перезапустите игру, чтобы они "
"прочитались. Для читов, меняющих код игры, игра пересоберётся сама при запуске (несколько "
"минут).",
[UI_MENU_CHEATS_MOD] = "%s — читов: %d",
[UI_MENU_CHEAT_CODE_DESC] = "Меняет код игры. Включается и выключается сразу.",
[UI_MENU_CHEAT_KEY_DESC] = "Меняет код игры, пока вы держите %s. Включается и выключается сразу.",
[UI_MENU_CHEAT_DATA_DESC] = "Пока включён, записывает память игры каждый кадр.",
[UI_MENU_CHEAT_MASTER] = "всегда вкл.",
[UI_MENU_CHEAT_MASTER_DESC] = "Главный код файла: включён всегда.",
[UI_MENU_CHEAT_RESTORE] = "не нужен",
[UI_MENU_CHEAT_RESTORE_DESC] = "Он только возвращает исходный код игры. Выключение чита уже делает это.",
[UI_MENU_CHEAT_REBUILD] = "после пересборки",
[UI_MENU_CHEAT_REBUILD_DESC] = "Этот чит меняет код игры и появился или изменился после сборки игры. Игра соберёт "
"его при следующем запуске (несколько минут), или нажмите «Пересобрать игру сейчас».",
[UI_MENU_CHEAT_UNSUPPORTED] = "не поддерживается",
[UI_MENU_CHEAT_UNSUPPORTED_DESC] = "Этот чит нельзя использовать с этой версией игры:",
[UI_MENU_SAVES] = "Сохранения",
[UI_MENU_SAVE_EXPORT] = "Экспорт сохранения",
[UI_MENU_SAVE_EXPORT_DESC] = "Записывает ваше сохранение (все слоты) в один zip-файл в папке «Загрузки», чтобы "
"передать его другому игроку или приложить к сообщению об ошибке. Ключи и файлы игры "
"в него не попадают.",
[UI_MENU_SAVE_EXPORT_BUG] = "Экспорт для сообщения об ошибке",
[UI_MENU_SAVE_EXPORT_BUG_DESC] = "Тот же zip с журналом этого запуска и вашими настройками (nx2navi.ini): по ним "
"видно, что произошло и с какими настройками. Приложите его к сообщению об ошибке.",
[UI_MENU_SAVE_IMPORT] = "Импорт сохранения",
[UI_MENU_SAVE_IMPORT_DESC] = "Выберите сохранение, которым с вами поделились (zip NX2navi-save). Оно заменит ваше "
"сохранение, все слоты, при следующем запуске: игра держит прогресс в памяти и "
"записала бы его поверх сохранения, заменённого сейчас. Текущее сохранение сначала "
"копируется в папку saves.",
[UI_MENU_SAVE_IMPORT_WAITING] = "при следующем запуске",
[UI_MENU_SAVE_IMPORT_CANCEL] = "Отменить импорт",
[UI_MENU_SAVE_IMPORT_CANCEL_DESC] = "Оставляет ваше сохранение как есть: сохранение, ждущее следующего запуска, "
"удаляется.",
[UI_MENU_SAVE_BUSY] = "выполняется…",
[UI_MENU_SAVE_EXPORTED] = "Сохранено: %s",
[UI_MENU_SAVE_IMPORT_READY] = "Сохранение (NX2navi %s) загрузится при следующем запуске: выберите «Перезапустить» "
"внизу. Текущее сохранение сначала копируется в папку saves.",
[UI_MENU_SAVE_IMPORT_CANCELLED] = "Импорт отменён, ваше сохранение не изменилось.",
[UI_MENU_SAVE_IMPORTED] = "При этом запуске импортировано сохранение. Прежнее сохранение лежит в %s",
[UI_MENU_SAVE_IMPORTED_NEW] = "При этом запуске импортировано сохранение.",
[UI_MENU_SAVE_E_NO_SAVE] = "Экспортировать пока нечего: играйте, пока игра не сохранится.",
[UI_MENU_SAVE_E_READ_SAVE] = "Не удалось прочитать файл сохранения; попробуйте ещё раз чуть позже.",
[UI_MENU_SAVE_E_WRITE] = "Не удалось записать zip в %s.",
[UI_MENU_SAVE_E_READ] = "Не удалось прочитать %s.",
[UI_MENU_SAVE_E_STAGE] = "Не удалось подготовить сохранение к следующему запуску; причина указана в журнале.",
[UI_MENU_SAVE_E_NOT_SAVE] = "%s — не сохранение, экспортированное NX2navi.",
[UI_MENU_SAVE_E_OTHER_GAME] = "%s — сохранение другой игры.",
[UI_MENU_SAVE_E_NEWER] = "%s создан более новой версией NX2navi: сначала обновите NX2navi.",
[UI_MENU_SAVE_E_DAMAGED] = "%s повреждён: скачайте его заново.",
[UI_MENU_SAVE_E_UNSAFE] = "%s отклонён: в нём файлы вне сохранения, ссылки или слишком много данных.",
[UI_MENU_CAPTURE_SAVED] = "Снимок ошибки %d сохранён",
[UI_MENU_CAPTURE_FOLDER] = "Папка: %s",
[UI_MENU_CAPTURE_FAILED] = "Снимок ошибки %d не удалось сохранить",
[UI_BOOT_TITLE] = "Подготовка шейдеров",
[UI_BOOT_STARTING] = "Запуск", [UI_BOOT_SHADERS] = "Шейдеры: %lld из %lld", [UI_BOOT_PIPELINES] = "Конвейеры: %lld из %lld",
[UI_BOOT_COMPUTE] = "Вычислительные конвейеры: %lld из %lld", [UI_BOOT_DRIVER_CACHE] = "Кэш драйвера: %lld из %lld",
[UI_MENU_CHEATS_REBUILD] = "Пересобрать игру сейчас",
[UI_MENU_CHEATS_REBUILD_DESC] = "Некоторые читы меняют код игры и ещё не собраны в неё: они новые или изменены, "
"либо прошлая пересборка не удалась или была отменена. Закрывает игру; установщик "
"собирает их (несколько минут) и снова запускает игру. Прогресс после последнего "
"сохранения будет потерян.",
[UI_MENU_MODS_EXEFS_UNSUPPORTED] = "Этот мод меняет код игры (exefs) так, как порт применить не может, поэтому мод "
"выключен целиком. %s",
[UI_MENU_MODS_EXEFS_OTHER] = "Его патчи кода (exefs) сделаны для другой версии игры.",
[UI_MENU_MODS_EXEFS_ON] = "Патчи кода в работе: файлов: %d.",
[UI_MENU_MODS_REPLACES_BUILTIN] = "Патчи кода в работе: файлов: %d. Они заменяют собственный патч порта %s, "
"который выключен, пока этот мод включён.",
};
static const char *const text_pt_br[UI_TEXT_COUNT] = {
SWKBD("Inserir texto", "Insira um nome", "Cavalo", "OK", "Cancelar", "Controle: A = OK, B = Cancelar"),
[UI_MENU_TITLE] = "Configurações",
[UI_MENU_TAB_SCREEN] = "Tela", [UI_MENU_TAB_GAME] = "Jogo", [UI_MENU_TAB_SOUND] = "Som",
[UI_MENU_TAB_CONTROLS] = "Controles", [UI_MENU_TAB_AMIIBO] = "Amiibo", [UI_MENU_TAB_MENU] = "Menu", [UI_MENU_TAB_ADVANCED] = "Avançado",
[UI_MENU_TAB_MODS] = "Mods",
[UI_MENU_MODS_BUILTIN] = "Embutidos no port", [UI_MENU_MODS_INSTALLED] = "Mods instalados",
[UI_MENU_MODS_NONE] = "Nenhum mod ainda. Descompacte um mod na pasta mods, uma pasta por mod com a pasta romfs dentro, "
"e reinicie o jogo. Um gerenciador de mods também pode exportar os mods mesclados para uma pasta ali.",
[UI_MENU_MODS_OPEN] = "Abrir pasta de mods",
[UI_MENU_MODS_OPEN_DESC] = "Mostra a pasta de onde o jogo carrega os mods. Ela é criada se não existir.",
[UI_MENU_MODS_ROW_DESC] = "Arquivos do jogo que substitui: %u. Arquivos novos que adiciona: %u.",
[UI_MENU_MODS_OVERRIDDEN] = "%u dos seus arquivos vêm de %s, que está acima na lista.",
[UI_MENU_MODS_MOVE_HINT] = "O botão de cima ou Ctrl+Cima sobe o mod, o botão da esquerda ou Ctrl+Baixo desce. "
"Quando dois mods mudam o mesmo arquivo, vale o de cima. As mudanças valem após reiniciar.",
[UI_MENU_MODS_EMPTY] = "Esta pasta não tem arquivos romfs, exefs ou cheats.",
[UI_MENU_MODS_SUBSDK] = "Este mod traz código próprio do jogo (um plugin subsdk ou um main substituído). O port não "
"carrega módulos de código, então o mod inteiro fica desligado.",
[UI_MENU_MODS_EXEFS_LATER] = "Este mod altera o código do jogo (exefs). O jogo compila esses patches na próxima "
"vez que iniciar (uma recompilação de alguns minutos); até lá o mod inteiro fica "
"desligado.",
[UI_MENU_MODS_CHEATS] = "Cheats: %d. Ligue-os na aba Cheats.",
[UI_MENU_MODS_CHEATS_FILE] = "Os cheats desta versão do jogo são lidos ao iniciar de cheats\\%s neste mod.",
[UI_MENU_MODS_BAD_NAME] = "O nome da pasta contém |, que a lista de mods usa entre os nomes. Renomeie a pasta.",
[UI_MENU_MODS_OTHER_VERSION] = "%u dos seus arquivos são de outra versão do jogo e ficam de fora. Procure uma versão "
"deste mod feita para a sua versão do jogo.",
[UI_MENU_MODS_UNUSED] = "não usado",
[UI_MENU_MODS_FPS60] = "Patch de 60 FPS",
[UI_MENU_MODS_FPS60_DESC] = "O patch do próprio port para 60 quadros por segundo. Ajuste em Limite de quadros na aba "
"Jogo.",
[UI_MENU_MODS_RES] = "Patch de resolução",
[UI_MENU_MODS_RES_DESC] = "O patch do próprio port para resoluções acima de 1080p. Ajuste em Resolução do jogo na aba "
"Tela.",
[UI_MENU_MODS_QUICKMENU] = "Correção do menu rápido",
[UI_MENU_MODS_QUICKMENU_DESC] = "A correção do port para o fundo preto dos menus de armas, escudos e materiais a 60 "
"FPS.",
[UI_MENU_CONTINUE] = "Continuar", [UI_MENU_QUIT] = "Sair do jogo",
[UI_MENU_ON] = "Ligado", [UI_MENU_OFF] = "Desligado", [UI_MENU_AUTO] = "Automático",
[UI_MENU_DEFAULT_MARK] = "padrão",
[UI_MENU_AFTER_RESTART] = "após reiniciar", [UI_MENU_SET_BY_ENV] = "definido por variável de ambiente",
[UI_MENU_SAVE_FAILED] = "não foi possível salvar as configurações",
[UI_MENU_INI_UNKNOWN] = "nx2navi.ini: não são configurações desta versão, ignoradas: %s",
[UI_MENU_VERSION] = "NX2navi %s, jogo %s",
[UI_MENU_FULLSCREEN] = "Tela cheia", [UI_MENU_FULLSCREEN_DESC] = "Jogar em tela cheia. F11 alterna.",
[UI_MENU_WINDOW_SIZE] = "Tamanho da janela",
[UI_MENU_WINDOW_SIZE_DESC] = "Tamanho da janela fora da tela cheia.",
[UI_MENU_WINDOW_SIZE_CUSTOM] = "Personalizado",
[UI_MENU_PRESENT_DESC] = "Evita cortes na imagem. Desligado reduz um pouco o atraso.",
[UI_MENU_PRESENT_MAILBOX] = "Mailbox", [UI_MENU_PRESENT_VSYNC] = "VSync", [UI_MENU_PRESENT_IMMEDIATE] = "Imediato",
[UI_MENU_PRESENT_IN_USE] = "em uso: %s",
[UI_MENU_LOW_LATENCY] = "Baixa latência",
[UI_MENU_LOW_LATENCY_DESC] = "O driver de vídeo segura o início de cada quadro, para ler o controle o mais tarde "
"possível (NVIDIA Reflex, AMD Anti-Lag). Ele também mantém o limite de quadros. Boost "
"mantém a placa de vídeo em frequência máxima.",
[UI_MENU_LOW_LATENCY_BOOST] = "Ligado + Boost",
[UI_MENU_LOW_LATENCY_NO_DRIVER] = "este driver de vídeo não tem modo de baixa latência",
[UI_MENU_LOW_LATENCY_DLSSG] = "a geração de quadros DLSS usa o seu próprio",
[UI_MENU_LOW_LATENCY_FG] = "desligado enquanto a geração de quadros roda nesta placa",
[UI_MENU_FRAMEGEN_DESC_ANY] = "Adiciona quadros gerados para um movimento mais suave, com qualquer opção em "
"Upscaling.",
[UI_MENU_FRAMEGEN_DESC_NGX] = "Adiciona quadros gerados para um movimento mais suave. O NVIDIA DLSS precisa de um "
"modo DLSS em Upscaling quando o jogo inicia; depois funciona com qualquer opção em "
"Upscaling.",
[UI_MENU_FRAMEGEN_NOTE_NGX] = "precisa do DLSS ao iniciar o jogo",
[UI_MENU_LOW_LATENCY_FAILED] = "em uso: desligado, o driver recusou (veja lowlat no log)",
[UI_MENU_GPU] = "Placa de vídeo", [UI_MENU_GPU_DESC] = "A placa de vídeo usada pelo jogo.",
[UI_MENU_GPU_AUTO] = "Automática",
[UI_MENU_PERF_OVERLAY] = "Indicador de desempenho",
[UI_MENU_PERF_OVERLAY_DESC] = "Mostra a taxa de quadros e dados do sistema. F10 alterna.",
[UI_MENU_PERF_OFF] = "Desligado", [UI_MENU_PERF_FPS] = "FPS", [UI_MENU_PERF_FULL] = "Completo",
[UI_PERF_LINE_FPS] = "%.0f fps",
[UI_MENU_GRAPHICS] = "Imagem",
[UI_MENU_OUTPUT_RES] = "Resolução do jogo",
[UI_MENU_OUTPUT_RES_DESC] = "A resolução do jogo. Mais alta exige mais da placa de vídeo.",
[UI_MENU_RENDER_SCALE] = "Escala da renderização 3D",
[UI_MENU_RENDER_SCALE_DESC] = "Tamanho da cena 3D. Maior fica mais nítido, porém mais pesado.",
[UI_MENU_RENDER_SCALE_GAME] = "Jogo (83 %)",
[UI_MENU_UPSCALER] = "Escala para a janela",
[UI_MENU_UPSCALER_DESC] = "Como a imagem do jogo se ajusta à janela. Janela maior: o FSR mantém bordas e detalhes "
"mais nítidos que o bilinear. Janela menor (Ocarina desenha 2560 x 1440): a imagem é "
"reduzida e o FSR aumenta a nitidez com a intensidade abaixo.",
[UI_MENU_UPSCALER_FSR] = "AMD FSR 1", [UI_MENU_UPSCALER_BILINEAR] = "Bilinear",
[UI_MENU_UPSCALING_NATIVE] = "Nativo (100%)",
[UI_MENU_UPSCALING_DESC] = "Como a imagem é suavizada e ajustada à janela. Nativo desenha a cena 3D no tamanho "
"total da imagem, sem upscaler: a mais nítida, e a que mais exige da GPU.",
[UI_MENU_UPSCALING_DESC_FSR] = "Como a imagem é suavizada e ajustada à janela. Nativo desenha a cena 3D no "
"tamanho total da imagem, sem upscaler: a mais nítida, e a que mais exige da GPU.",
[UI_MENU_UPSCALING_DESC_NO_FSR] = "Como a imagem é suavizada e ajustada à janela. Nativo desenha a cena 3D no "
"tamanho total da imagem, sem upscaler: a mais nítida, e a que mais exige da "
"GPU. O AMD FSR 3.1 não é oferecido aqui: ele precisa do amd_fidelityfx_vk.dll, "
"que não pode ser carregado.",
[UI_MENU_GAME_ASPECT] = "Tela larga",
[UI_MENU_GAME_ASPECT_DESC] = "Amplia a visão. A interface e os menus continuam em 16:9.",
[UI_MENU_GAME_ASPECT_16_9] = "16:9 (o do jogo)", [UI_MENU_GAME_ASPECT_WINDOW] = "Formato da janela",
[UI_MENU_GAME_ASPECT_21_9] = "21:9", [UI_MENU_GAME_ASPECT_32_9] = "32:9",
[UI_MENU_SHARPNESS] = "Nitidez do FSR",
[UI_MENU_SHARPNESS_DESC] = "Nitidez aplicada pelo FSR. 0 desliga.",
[UI_MENU_SHARPNESS_NEEDS_FSR] = "só com AMD FSR 1",
[UI_MENU_FPS_LIMIT] = "Limite de quadros",
[UI_MENU_FPS_LIMIT_DESC] = "A taxa máxima de quadros que o jogo desenha. A geração de quadros soma os dela por cima.",
[UI_MENU_FPS_30] = "30 FPS", [UI_MENU_FPS_40] = "40 FPS", [UI_MENU_FPS_45] = "45 FPS",
[UI_MENU_FPS_60] = "60 FPS", [UI_MENU_FPS_90] = "90 FPS", [UI_MENU_FPS_120] = "120 FPS", [UI_MENU_FPS_144] = "144 FPS",
[UI_MENU_ASSUME_FOCUS] = "Continuar rodando fora de foco",
[UI_MENU_ASSUME_FOCUS_DESC] = "Mantém o jogo rodando quando você troca de janela.",
[UI_MENU_TEXT_SPEED] = "Velocidade do texto",
[UI_MENU_TEXT_SPEED_DESC] = "A rapidez com que as janelas de mensagem do jogo mostram o texto. Rápida escreve três "
"vezes mais rápido; instantânea mostra cada página de uma vez. Textos que o jogo não "
"deixa apressar, como falas sincronizadas com uma cena ou uma voz, mantêm a velocidade.",
[UI_MENU_TEXT_SPEED_NORMAL] = "Normal", [UI_MENU_TEXT_SPEED_FAST] = "Rápida",
[UI_MENU_TEXT_SPEED_INSTANT] = "Instantânea",
[UI_MENU_FPS_DISPLAY] = "Taxa do monitor", [UI_MENU_FPS_DISPLAY_HZ] = "Taxa do monitor (%.0f Hz)",
[UI_MENU_FPS_UNLIMITED] = "Sem limite",
[UI_MENU_FPS_RTSS] = "limitado pelo RivaTuner Statistics Server",
[UI_MENU_FPS_RTSS_READONLY] = "o RivaTuner pede o jogo como administrador",
[UI_MENU_FPS_RTSS_IGNORED] = "o RivaTuner não limita este jogo; o jogo limita",
[UI_MENU_FPS_RTSS_TWO] = "o limite do próprio RivaTuner também vale: dois limitadores",
[UI_MENU_REALTIME] = "Velocidade do jogo pelo relógio",
[UI_MENU_REALTIME_DESC] = "Avança o jogo pelo tempo real, para que um quadro lento não deixe o jogo mais lento.",
[UI_MENU_CLOTH_REALTIME] = "Tecidos pelo relógio",
[UI_MENU_CLOTH_REALTIME_DESC] = "Avança tecidos e cabelos pelo tempo real também.",
[UI_MENU_HIGHFPS_FIX] = "Correções para alta taxa de quadros",
[UI_MENU_HIGHFPS_FIX_DESC] = "Corrige a física que se comporta mal acima de 30 quadros por segundo e objetos que ficam transparentes ou invisíveis acima de 60.",
[UI_MENU_GAME_LANG] = "Idioma do jogo", [UI_MENU_GAME_LANG_DESC] = "Idioma dos textos e das vozes do jogo.",
[UI_MENU_GAME_LANG_AUTO] = "Automático",
[UI_MENU_OPERATION_MODE] = "Modo do console",
[UI_MENU_OPERATION_MODE_DESC] = "Roda o jogo como na base ou no modo portátil.",
[UI_MENU_MODE_DOCKED] = "Modo TV", [UI_MENU_MODE_HANDHELD] = "Modo portátil",
[UI_MENU_VOLUME] = "Volume", [UI_MENU_VOLUME_DESC] = "Volume geral do jogo.", [UI_MENU_MENU_SOUNDS] = "Sons do menu", [UI_MENU_MENU_SOUNDS_DESC] = "Volume dos sons deste menu.",
[UI_MENU_MOTION] = "Controles de movimento", [UI_MENU_MOTION_DESC] = "Mira com o giroscópio do controle.",
[UI_MENU_RUMBLE_STRENGTH] = "Intensidade da vibração",
[UI_MENU_RUMBLE_STRENGTH_DESC] = "Intensidade da vibração.",
[UI_MENU_RUMBLE_CURVE] = "Curva da vibração",
[UI_MENU_RUMBLE_CURVE_DESC] = "Valores menores reforçam a vibração fraca.",
[UI_MENU_RUMBLE_TRIGGERS] = "Vibração dos gatilhos (Xbox)",
[UI_MENU_RUMBLE_TRIGGERS_DESC] = "Também vibra os gatilhos do controle Xbox.",
[UI_MENU_RUMBLE_HD] = "Vibração HD (Switch)",
[UI_MENU_RUMBLE_HD_DESC] = "Envia a vibração detalhada do jogo a um Pro Controller do Switch ou Joy-Con como ela "
"é. A intensidade da vibração continua valendo: o valor padrão é a do jogo.",
[UI_MENU_RUMBLE_HD_NEEDS] = "Requer um Pro Controller do Switch ou Joy-Con",
[UI_MENU_PAD_LAYOUT] = "Layout dos botões",
[UI_MENU_PAD_LAYOUT_DESC] = "Define qual botão funciona como A. Nintendo: pela posição, A à direita, B embaixo, "
"X em cima, Y à esquerda. Xbox e PlayStation: pela letra, A embaixo, B à direita, X à "
"esquerda, Y em cima (num controle PlayStation xis, círculo, quadrado e triângulo). "
"Automático: Nintendo para um controle com as letras da Nintendo, pela letra para os "
"outros.",
[UI_MENU_PAD_LAYOUT_AUTO] = "Automático", [UI_MENU_PAD_LAYOUT_NINTENDO] = "Nintendo (A à direita)",
[UI_MENU_PAD_LAYOUT_XBOX] = "Xbox (A embaixo)", [UI_MENU_PAD_LAYOUT_PLAYSTATION] = "PlayStation (A embaixo)",
[UI_MENU_PAD_LAYOUT_IN_USE] = "em uso: %s",
[UI_MENU_GROUP_STICKS] = "Analógicos",
[UI_MENU_LSTICK_DEADZONE] = "Zona morta do analógico esquerdo",
[UI_MENU_RSTICK_DEADZONE] = "Zona morta do analógico direito",
[UI_MENU_STICK_DEADZONE_DESC] = "Quanto o analógico precisa mover para responder. Aumente se houver drift.",
[UI_MENU_STICK_DEADZONE_NOW] = "analógico agora: %.0f %%",
[UI_MENU_MOUSE_SENS] = "Sensibilidade da câmera no mouse",
[UI_MENU_MOUSE_SENS_DESC] = "Quão rápido o mouse gira a câmera.",
[UI_BINDS_HELP] = "Selecione uma célula e aperte A ou Enter, depois a tecla, o botão do mouse ou o botão do "
"controle. Delete ou X limpa a célula. Uma tecla já em uso vem para cá; um botão do controle "
"troca de lugar com o que ele substitui.",
[UI_BINDS_COL_KEY1] = "Tecla 1", [UI_BINDS_COL_KEY2] = "Tecla 2", [UI_BINDS_COL_PAD] = "Controle",
[UI_BINDS_GROUP_BUTTONS] = "Botões", [UI_BINDS_GROUP_MOVE] = "Movimento", [UI_BINDS_GROUP_CAMERA] = "Câmera",
[UI_BINDS_PRESS_KEY] = "Aperte uma tecla ou um botão do mouse para %s",
[UI_BINDS_PRESS_PAD] = "Aperte um botão do controle para %s",
[UI_BINDS_CANCEL_HINT] = "Esc cancela, ou aguarde %d s",
[UI_BINDS_TAKEN] = "%s saiu de %s", [UI_BINDS_SWAPPED] = "%s trocou de lugar com %s",
[UI_BINDS_RESET] = "Restaurar todos os botões",
[UI_BINDS_RESET_DESC] = "Restaura as teclas e os botões padrão.",
[UI_BIND_A] = "A", [UI_BIND_B] = "B", [UI_BIND_X] = "X", [UI_BIND_Y] = "Y",
[UI_BIND_LCLICK] = "Clique do analógico esquerdo", [UI_BIND_RCLICK] = "Clique do analógico direito",
[UI_BIND_L] = "L", [UI_BIND_R] = "R", [UI_BIND_ZL] = "ZL", [UI_BIND_ZR] = "ZR", [UI_BIND_PLUS] = "Mais",
[UI_BIND_MINUS] = "Menos",
[UI_BIND_LEFT] = "Direcional para a esquerda", [UI_BIND_UP] = "Direcional para cima",
[UI_BIND_RIGHT] = "Direcional para a direita", [UI_BIND_DOWN] = "Direcional para baixo",
[UI_BIND_LSTICK_LEFT] = "Mover para a esquerda", [UI_BIND_LSTICK_UP] = "Mover para a frente",
[UI_BIND_LSTICK_RIGHT] = "Mover para a direita", [UI_BIND_LSTICK_DOWN] = "Mover para trás",
[UI_BIND_RSTICK_LEFT] = "Câmera para a esquerda", [UI_BIND_RSTICK_UP] = "Câmera para cima",
[UI_BIND_RSTICK_RIGHT] = "Câmera para a direita", [UI_BIND_RSTICK_DOWN] = "Câmera para baixo",
[UI_BIND_DESC_A] = "Ações: conversar, abrir, pegar, escalar, agarrar. Segure para correr.",
[UI_BIND_DESC_B] = "Guardar, cancelar, voltar. Pular quando a troca do botão de pulo está ligada nas opções do jogo.",
[UI_BIND_DESC_X] = "Pular. Guardar quando a troca do botão de pulo está ligada nas opções do jogo.",
[UI_BIND_DESC_Y] = "Atacar com a espada.",
[UI_BIND_DESC_LCLICK] = "Pressionar o analógico esquerdo (não aparece na tela de controles do jogo).",
[UI_BIND_DESC_RCLICK] = "Voltar a câmera para trás do Link.",
[UI_BIND_DESC_L] = "Seleção rápida de itens; a página anterior nos menus do jogo.",
[UI_BIND_DESC_R] = "Seleção rápida de itens; a próxima página nos menus do jogo.",
[UI_BIND_DESC_ZL] = "Mirar (segurar ou alternar: tipo de mira nas opções do jogo).",
[UI_BIND_DESC_ZR] = "Usar o item escolhido: estilingue, arco, bumerangue, gancho, bombas, garrafas.",
[UI_BIND_DESC_PLUS] = "Menu: itens, equipamento, coleção, sistema.", [UI_BIND_DESC_MINUS] = "Mapa.",
[UI_BIND_DESC_LEFT] = "Tocar a ocarina.", [UI_BIND_DESC_UP] = "Pôr ou tirar o acessório.",
[UI_BIND_DESC_RIGHT] = "Falar com a Navi.", [UI_BIND_DESC_DOWN] = "Trocar de botas.",
[UI_BIND_DESC_MOVE] = "Move o Link.",
[UI_BIND_DESC_CAMERA] = "Gira a câmera.",
[UI_BIND_SHAKE] = "Sacudir o analógico da câmera",
[UI_BIND_DESC_SHAKE] = "Balança o analógico direito. Segure para continuar.",
[UI_KEY_SPACE] = "Espaço", [UI_KEY_TAB] = "Tab", [UI_KEY_LSHIFT] = "Shift esquerdo",
[UI_KEY_LCTRL] = "Ctrl esquerdo",
[UI_KEY_UP] = "Seta para cima", [UI_KEY_DOWN] = "Seta para baixo", [UI_KEY_LEFT] = "Seta para a esquerda",
[UI_KEY_RIGHT] = "Seta para a direita",
[UI_KEY_MOUSE_L] = "Mouse esquerdo", [UI_KEY_MOUSE_R] = "Mouse direito", [UI_KEY_MOUSE_M] = "Mouse do meio",
[UI_KEY_MOUSE_X1] = "Mouse 4", [UI_KEY_MOUSE_X2] = "Mouse 5",
[UI_KEY_ENTER] = "Enter", [UI_KEY_BACKSPACE] = "Backspace", [UI_KEY_RSHIFT] = "Shift direito",
[UI_KEY_RCTRL] = "Ctrl direito", [UI_KEY_LALT] = "Alt", [UI_KEY_CAPSLOCK] = "Caps Lock", [UI_KEY_INSERT] = "Insert",
[UI_KEY_DELETE] = "Delete", [UI_KEY_HOME] = "Home", [UI_KEY_END] = "End", [UI_KEY_PAGEUP] = "Page Up",
[UI_KEY_PAGEDOWN] = "Page Down", [UI_KEY_NUM_FMT] = "Num %s",
[UI_PAD_SOUTH] = "Botão de baixo", [UI_PAD_EAST] = "Botão da direita", [UI_PAD_WEST] = "Botão da esquerda",
[UI_PAD_NORTH] = "Botão de cima", [UI_PAD_LSTICK] = "Analógico esquerdo", [UI_PAD_RSTICK] = "Analógico direito",
[UI_PAD_L] = "Bumper esquerdo", [UI_PAD_R] = "Bumper direito", [UI_PAD_START] = "Start", [UI_PAD_BACK] = "Back",
[UI_PAD_DPAD_LEFT] = "Direcional para a esquerda", [UI_PAD_DPAD_UP] = "Direcional para cima",
[UI_PAD_DPAD_RIGHT] = "Direcional para a direita", [UI_PAD_DPAD_DOWN] = "Direcional para baixo",
[UI_PAD_ZL] = "Gatilho esquerdo", [UI_PAD_ZR] = "Gatilho direito",
[UI_PAD_LPADDLE1] = "Botão traseiro esquerdo", [UI_PAD_RPADDLE1] = "Botão traseiro direito",
[UI_PAD_LPADDLE2] = "Botão traseiro esquerdo 2", [UI_PAD_RPADDLE2] = "Botão traseiro direito 2",
[UI_PAD_CROSS] = "Cruz", [UI_PAD_CIRCLE] = "Círculo", [UI_PAD_SQUARE] = "Quadrado", [UI_PAD_TRIANGLE] = "Triângulo",
[UI_MENU_AMIIBO_DIR] = "Pasta de amiibo",
[UI_MENU_AMIIBO_OPEN] = "Abrir",
[UI_MENU_AMIIBO_DEFAULT_DIR] = "Pasta padrão",
[UI_MENU_AMIIBO_REFRESH] = "Atualizar",
[UI_MENU_AMIIBO_PICK] = "Dumps de amiibo (arquivos .bin ou .nfc de 540 bytes):",
[UI_MENU_AMIIBO_NO_DIR] = "Não foi possível abrir a pasta %s",
[UI_MENU_AMIIBO_READER] = "Leitor NFC",
[UI_MENU_AMIIBO_STATE] = "Leitor:",
[UI_MENU_AMIIBO_STATE_IDLE] = "pronto",
[UI_MENU_AMIIBO_STATE_SEARCHING] = "o jogo está esperando um amiibo",
[UI_MENU_AMIIBO_STATE_FOUND] = "amiibo no leitor",
[UI_MENU_AMIIBO_STATE_MOUNTED] = "o jogo está lendo o amiibo",
[UI_MENU_AMIIBO_STATE_OFF] = "desligado",
[UI_MENU_AMIIBO_FILE] = "Arquivo selecionado:",
[UI_MENU_AMIIBO_NO_FILE] = "(nenhum arquivo selecionado)",
[UI_MENU_AMIIBO_TAP] = "Encostar o amiibo",
[UI_MENU_AMIIBO_REMOVE] = "Afastar o amiibo",
[UI_MENU_AMIIBO_AUTO_REMOVE] = "Afastar o amiibo sozinho depois de encostar",
[UI_MENU_AMIIBO_HOLD] = "Tempo no leitor",
[UI_MENU_AMIIBO_SECONDS] = "%.1f s",
[UI_MENU_AMIIBO_TAG] = "Amiibo no leitor:",
[UI_MENU_AMIIBO_NO_TAG] = "Nenhum amiibo no leitor.",
[UI_MENU_AMIIBO_TAG_FILE] = "Arquivo: %s",
[UI_MENU_AMIIBO_TAG_ID] = "Personagem %s, série %02x, número %04x, tipo %02x",
[UI_MENU_AMIIBO_TAG_UID] = "UID: %s",
[UI_MENU_AMIIBO_READY] = "Pronto",
[UI_MENU_AMIIBO_TAPPED] = "Encostado: %s",
[UI_MENU_AMIIBO_LOAD_FAILED] = "Não é um dump de amiibo (NTAG215, 540 bytes): %s",
[UI_MENU_AMIIBO_REMOVED] = "Amiibo afastado",
[UI_MENU_AMIIBO_STATUS] = "Estado: %s",
[UI_MENU_MENU_LANG] = "Idioma do menu", [UI_MENU_MENU_LANG_DESC] = "Idioma deste menu e do indicador.",
[UI_MENU_MENU_LANG_AUTO] = "Automático (do Windows)",
[UI_MENU_DISCORD_RPC] = "Discord Rich Presence",
[UI_MENU_DISCORD_RPC_DESC] = "Mostra \"Jogando NX2navi\" com o tempo de jogo no seu status do Discord "
"enquanto o jogo roda. discord_app_id e discord_image no nx2navi.ini escolhem a "
"aplicação.",
[UI_MENU_ADV_WARNING] = "Estas configurações são para testes e solução de problemas. Altere-as só quando souber "
"por quê.",
[UI_MENU_GROUP_SCHED] = "Agendamento", [UI_MENU_GROUP_SHADERS] = "Shaders e pipelines",
[UI_MENU_GROUP_TEXMEM] = "Texturas e memória", [UI_MENU_GROUP_FIXES] = "Correções de renderização",
[UI_MENU_GROUP_VULKAN] = "Vulkan", [UI_MENU_GROUP_DIAG] = "Diagnóstico",
[UI_MENU_ASYNC_PREEMPT] = "Preempção de núcleo virtual",
[UI_MENU_ASYNC_PREEMPT_DESC] = "Deixa uma thread do jogo interromper outra no mesmo núcleo virtual.",
[UI_MENU_PREEMPT_OFF] = "Desligado", [UI_MENU_PREEMPT_ON] = "Ligado", [UI_MENU_PREEMPT_INHERIT] = "Só herança",
[UI_MENU_REPLAY_ASYNC] = "Preparo de quadro da GPU em thread própria",
[UI_MENU_REPLAY_ASYNC_DESC] = "Prepara os quadros para a GPU numa thread separada em vez da thread do jogo. Mais rápido em cenas pesadas, mas pode mostrar um quadro escuro ou piscando de vez em quando, e adiciona até um quadro de latência.",
[UI_MENU_TIMER_1MS] = "Timer do Windows de 1 ms",
[UI_MENU_TIMER_1MS_DESC] = "Aumenta a resolução do timer do sistema para 1 ms, para um ritmo de quadros mais estável.",
[UI_MENU_PIPE_WAIT] = "Tratamento de desenhos em espera",
[UI_MENU_PIPE_WAIT_DESC] = "Padrão mantém o agendamento atual, com um worker reservado para desenhos em espera; Antigo (draw) usa o agendamento anterior.",
[UI_MENU_PIPE_WAIT_DEFAULT] = "Padrão", [UI_MENU_PIPE_WAIT_DRAW] = "Antigo (draw)",
[UI_MENU_PIPE_SKIP] = "Desenhos pulados ao montar pipeline",
[UI_MENU_PIPE_SKIP_DESC] = "Quais desenhos são descartados em vez de esperar pelo seu pipeline.",
[UI_MENU_PIPE_SKIP_STRICT] = "Estrito", [UI_MENU_PIPE_SKIP_ANY] = "Qualquer",
[UI_MENU_PIPE_SKIP_FULLSCREEN] = "Passes de tela cheia",
[UI_MENU_LIB_PREBUILD] = "Pré-montagem das bibliotecas de estágio",
[UI_MENU_LIB_PREBUILD_DESC] = "Monta antes, em segundo plano, as bibliotecas de estágio dos shaders.",
[UI_MENU_LIB_PREBUILD_THREADS] = "Threads da pré-montagem das bibliotecas",
[UI_MENU_LIB_PREBUILD_THREADS_DESC] = "Threads usadas na pré-montagem; Automático escolhe um número pela sua CPU.",
[UI_MENU_PIPE_PREBUILD] = "Pré-montagem de pipelines",
[UI_MENU_PIPE_PREBUILD_DESC] = "Monta antes os pipelines conhecidos.",
[UI_MENU_PREWARM_XLATE] = "Pré-aquecimento do tradutor",
[UI_MENU_PREWARM_XLATE_DESC] = "Threads que traduzem os shaders conhecidos ao iniciar; Automático usa metade das threads da CPU, no máximo 16.",
[UI_MENU_GPL] = "Biblioteca de pipelines gráficos",
[UI_MENU_GPL_DESC] = "Usa a extensão de biblioteca de pipelines do Vulkan; desligue se o seu driver tiver problemas com ela.",
[UI_MENU_ASTC] = "Decodificação de texturas ASTC",
[UI_MENU_ASTC_DESC] = "Onde as texturas comprimidas em ASTC são decodificadas.",
[UI_MENU_ASTC_AUTO] = "Automático", [UI_MENU_ASTC_GPU] = "Shader da GPU", [UI_MENU_ASTC_NATIVE] = "Nativo",
[UI_MENU_ASTC_CPU] = "CPU",
[UI_MENU_MEMORY] = "Modo de memória da GPU",
[UI_MENU_MEMORY_DESC] = "Como a memória do jogo é compartilhada com a GPU.",
[UI_MENU_MEMORY_AUTO] = "Automático", [UI_MENU_MEMORY_IMPORT] = "Importar", [UI_MENU_MEMORY_MIRROR] = "Espelhar",
[UI_MENU_MEMORY_VERIFY] = "Verificar",
[UI_MENU_TEX_ALIAS] = "Aliasing de texturas", [UI_MENU_TEX_ALIAS_DESC] = "Uma textura nova criada sobre a memória de uma textura viva começa com esse conteúdo em vez de vazia.",
[UI_MENU_TEX_VRAM_PRESSURE] = "Limite de memória de texturas", [UI_MENU_TEX_VRAM_PRESSURE_DESC] = "Porcentagem da memória de vídeo acima da qual as texturas liberadas pelo jogo são descartadas (voltam do armazenamento quando usadas de novo). 0 mantém todas.",
[UI_MENU_ASTC_BC] = "Comprimir ASTC em BC3", [UI_MENU_ASTC_BC_DESC] = "Com o decodificador da GPU: recodifica as texturas ASTC decodificadas em BC3, que ocupa um quarto da memória de vídeo. As texturas ficam um pouco mais quadriculadas. Automático: ligado em GPUs com 4 GB de memória de vídeo ou menos.",
[UI_MENU_LOD_GUARD] = "Proteção de LOD", [UI_MENU_LOD_GUARD_DESC] = "Evita que objetos pisquem no lugar errado ou que o plano distante fique achatado por um quadro, esperando o jogo terminar de reescrever os dados de nível de detalhe antes que a GPU os leia.",
[UI_MENU_FIX_C0] = "Correção do buffer de constantes",
[UI_MENU_FIX_C0_DESC] = "Preenche o banco de constantes c0 reservado ao driver (tamanhos de armazenamento, tamanho do dispatch, tamanho do ponto, instância base) em vez de ler zeros.",
[UI_MENU_FIX_ZERO] = "Zerar memória nova da GPU",
[UI_MENU_FIX_ZERO_DESC] = "Novos pools de memória da GPU começam zerados, como a memória do Switch.",
[UI_MENU_BIND_SKIP] = "Pular bindings repetidos",
[UI_MENU_BIND_SKIP_DESC] = "Otimização: pula bindings que não mudaram.",
[UI_MENU_SHADER_MEMO] = "Memória de shaders", [UI_MENU_SHADER_MEMO_DESC] = "Otimização: lembra as buscas de shaders.",
[UI_MENU_PIPE_MEMO] = "Memória de pipeline", [UI_MENU_PIPE_MEMO_DESC] = "Otimização: reaproveita o pipeline do desenho anterior quando o estado se repete.",
[UI_MENU_TEX_MEMO] = "Memória de bindings de textura", [UI_MENU_TEX_MEMO_DESC] = "Otimização: lembra os descritores de textura entre desenhos.",
[UI_MENU_DESC_TEMPLATE] = "Templates de descritores",
[UI_MENU_DESC_TEMPLATE_DESC] = "Otimização: atualiza os descritores em lote.",
[UI_MENU_PUSH_SKIP] = "Pular push constants repetidas",
[UI_MENU_PUSH_SKIP_DESC] = "Otimização: pula push constants que não mudaram.",
[UI_MENU_SPLIT_DRAWS] = "Envio antecipado à GPU",
[UI_MENU_SPLIT_DRAWS_DESC] = "Envia o trabalho da GPU em partes a cada N desenhos entre passes, para a GPU começar mais cedo; 0 desliga.",
[UI_MENU_VK_VALIDATION] = "Camada de validação",
[UI_MENU_VK_VALIDATION_DESC] = "Verifica cada chamada Vulkan e deixa o jogo muito mais lento.",
[UI_MENU_VK_VALIDATION_MISSING] = "A camada de validação não está instalada.",
[UI_MENU_VK_DYN_VERTEX] = "Estado dinâmico de vértices",
[UI_MENU_VK_DYN_VERTEX_DESC] = "Força a entrada dinâmica de vértices ligada ou desligada; o padrão depende da GPU.",
[UI_MENU_VK_DYN_A2C] = "Alpha to coverage dinâmico",
[UI_MENU_VK_DYN_A2C_DESC] = "Força o alpha to coverage dinâmico ligado ou desligado. Padrão: desligado no driver da AMD "
"para RDNA 2 e anteriores, que com ele desenha os personagens pretos, ligado nos demais.",
[UI_MENU_VK_SUBGROUP_PIN] = "Fixar tamanho do subgrupo",
[UI_MENU_VK_SUBGROUP_PIN_DESC] = "Fixa o tamanho do subgrupo dos shaders.",
[UI_MENU_TRACE] = "Registro de desempenho", [UI_MENU_TRACE_DESC] = "Grava os tempos de quadro num arquivo.",
[UI_MENU_FLIGHT] = "Caixa-preta",
[UI_MENU_FLIGHT_DESC] = "Guarda um histórico curto e o salva quando um quadro trava.",
[UI_MENU_FLIGHT_SPIKE_MS] = "Limite de travamento (ms)",
[UI_MENU_FLIGHT_SPIKE_MS_DESC] = "Tempo de quadro que conta como travamento.",
[UI_MENU_PASS_CRUMBS] = "Marcas de passagem da GPU",
[UI_MENU_PASS_CRUMBS_DESC] = "Após uma falha da GPU, o log indica a passagem de renderização que estava em execução. Automático: só AMD. Ligado: também NVIDIA, com um pequeno custo.",
[UI_MENU_INPUT_RECORD] = "Gravação de comandos",
[UI_MENU_INPUT_RECORD_DESC] = "Grava os seus comandos num arquivo para relatórios de bug.",
[UI_MENU_OPEN_LOG] = "Abrir pasta de logs", [UI_MENU_OPEN_LOG_DESC] = "Mostra a pasta com os arquivos de log.",
[UI_MENU_COPY_INFO] = "Copiar informações do sistema",
[UI_MENU_COPY_INFO_DESC] = "Copia GPU, driver, CPU, RAM e as configurações alteradas para a área de transferência.",
[UI_MENU_COPY_INFO_DONE] = "Copiado", [UI_MENU_ACTION_FAILED] = "não funcionou",
[UI_MENU_RESET] = "Restaurar todas as configurações", [UI_MENU_RESET_DESC] = "Vale para todas as abas.",
[UI_MENU_RESET_CONFIRM] = "Restaurar todas as configurações para o padrão?", [UI_MENU_RESET_YES] = "Restaurar",
[UI_MENU_RESET_NO] = "Cancelar",
[UI_MENU_OV_FPS] = "%.0f FPS", [UI_MENU_OV_FRAME_MS] = "%.1f ms", [UI_MENU_OV_GAME_PCT] = "jogo %.0f%%",
[UI_MENU_OV_MAX_MS] = "máx. %.1f ms",
[UI_MENU_OV_FPS_LABEL] = "FPS", [UI_MENU_OV_FRAME_LABEL] = "Quadro", [UI_MENU_OV_FMT_FPS] = "%.0f",
[UI_MENU_OV_LOW1] = "1%% piores %.0f", [UI_MENU_OV_LOW01] = "0.1%% piores %.0f",
[UI_MENU_OV_GPU] = "GPU", [UI_MENU_OV_CPU] = "CPU", [UI_MENU_OV_RAM] = "RAM", [UI_MENU_OV_VRAM] = "VRAM",
[UI_MENU_OV_TEMP] = "Temperatura", [UI_MENU_OV_POWER] = "Consumo", [UI_MENU_OV_CLOCK] = "Frequência",
[UI_MENU_OV_NONE] = "-",
[UI_MENU_OV_REPLAY] = "Preparo de quadro da GPU", [UI_MENU_OV_GPU_TIME] = "GPU ocupada por quadro",
[UI_MENU_OV_PIPE_WAIT] = "Esperas de pipeline",
[UI_MENU_OV_SHADER_WAIT] = "Esperas de shader", [UI_MENU_OV_TEX_UPLOADS] = "Envios de textura",
[UI_MENU_OV_FMT_PCT] = "%.0f%%", [UI_MENU_OV_FMT_TEMP] = "%.0f °C", [UI_MENU_OV_FMT_POWER] = "%.0f W",
[UI_MENU_OV_FMT_MHZ] = "%.0f MHz", [UI_MENU_OV_FMT_GB] = "%.1f GB", [UI_MENU_OV_FMT_GB_OF] = "/ %.1f GB",
[UI_MENU_OV_GAME_GB] = "jogo %.1f GB", [UI_MENU_OV_FMT_MS] = "%.2f ms", [UI_MENU_OV_PER_FRAME] = "%.1f por quadro",
[UI_MENU_OV_WINDOW] = "Janela", [UI_MENU_OV_OUTPUT] = "Imagem do jogo", [UI_MENU_OV_SCENE] = "Cena 3D",
[UI_MENU_OV_SCALING] = "Escala", [UI_MENU_OV_LIMIT] = "Limite de quadros", [UI_MENU_OV_PRESENT] = "Apresentação",
[UI_MENU_OV_FMT_SIZE] = "%ux%u", [UI_MENU_OV_FMT_SCENE] = "%ux%u, %.0f%%",
[UI_MENU_OV_FMT_FSR] = "AMD FSR 1, nitidez %d%%", [UI_MENU_OV_SCALE_NONE] = "nenhuma (1:1)",
[UI_MENU_OV_FMT_SHRINK] = "bilinear + nitidez FSR %d%%",
[UI_MENU_OV_SCALE_BILINEAR] = "bilinear",
[UI_MENU_FOV] = "Campo de visão",
[UI_MENU_FOV_DESC] = "Quanto do mundo a câmera mostra, em porcentagem do original do jogo. Só na versão 1.4.3 do "
"jogo.",
[UI_MENU_SHADOW_RES] = "Tamanho do mapa de sombras",
[UI_MENU_SHADOW_RES_DESC] = "Detalhe das sombras. Mais alto exige mais da placa de vídeo.",
[UI_MENU_SHADOW_RES_GAME] = "Do jogo (varia)",
[UI_MENU_ANISO] = "Filtragem de texturas",
[UI_MENU_ANISO_DESC] = "Filtragem anisotrópica das texturas de superfície: chão, estradas e paredes vistos em "
"ângulo raso continuam nítidos ao longe em vez de borrar. Jogo: o nível que o jogo pede, "
"como no Switch.",
[UI_MENU_ANISO_GAME] = "Jogo",
[UI_MENU_TEX_DETAIL] = "Detalhe das texturas",
[UI_MENU_TEX_DETAIL_DESC] = "Nitidez das texturas grandes de superfície. Reduzido e Baixo deixam de fora as versões "
"maiores delas, para que uma área caiba na memória de vídeo de placas de 6 e 8 GB; só as "
"superfícies vistas de perto ficam mais suaves. Automático escolhe pela memória de vídeo "
"da placa.",
[UI_MENU_TEX_DETAIL_AUTO] = "Automático: %s",
[UI_MENU_TEX_DETAIL_FULL] = "Completo", [UI_MENU_TEX_DETAIL_REDUCED] = "Reduzido", [UI_MENU_TEX_DETAIL_LOW] = "Baixo",
[UI_MENU_COLOR] = "Cor",
[UI_MENU_COLOR_PRESET] = "Perfil de cor",
[UI_MENU_COLOR_PRESET_DESC] = "Define os quatro valores abaixo. Vívido: mais contraste e saturação, sombras um "
"pouco mais abertas (feito para telas OLED). Clareza: um pouco mais de contraste, "
"saturação e brilho. Mexer em um valor torna o perfil Personalizado. O HUD muda com "
"a imagem; este menu não.",
[UI_MENU_COLOR_DEFAULT] = "Do jogo",
[UI_MENU_COLOR_VIVID] = "Vívido (OLED)",
[UI_MENU_COLOR_CLARITY] = "Clareza",
[UI_MENU_COLOR_CUSTOM] = "Personalizado",
[UI_MENU_COLOR_BRIGHTNESS] = "Brilho",
[UI_MENU_COLOR_BRIGHTNESS_DESC] = "Somado a todas as cores; 0 não muda nada.",
[UI_MENU_COLOR_CONTRAST] = "Contraste",
[UI_MENU_COLOR_CONTRAST_DESC] = "Afasta as cores do cinza médio (acima de 100 %) ou as aproxima dele; 100 % não "
"muda nada.",
[UI_MENU_COLOR_SATURATION] = "Saturação",
[UI_MENU_COLOR_SATURATION_DESC] = "Força da cor em relação ao cinza; 100 % não muda nada.",
[UI_MENU_COLOR_GAMMA] = "Gama",
[UI_MENU_COLOR_GAMMA_DESC] = "Abaixo de 1 clareia os tons escuros e médios, acima de 1 os escurece; 1 não muda "
"nada.",
[UI_MENU_HDR_GROUP] = "HDR",
[UI_MENU_HDR] = "Saída HDR",
[UI_MENU_HDR_DESC] = "Realces mais brilhantes em telas HDR. Ative o HDR no Windows antes.",
[UI_MENU_HDR_PEAK] = "Brilho máximo",
[UI_MENU_HDR_PEAK_DESC] = "Brilho máximo da sua tela em nits.",
[UI_MENU_HDR_GAME] = "Brilho do jogo",
[UI_MENU_HDR_GAME_DESC] = "Brilho do branco no jogo, em nits.",
[UI_MENU_HDR_UI] = "Brilho do HUD e do menu",
[UI_MENU_HDR_UI_DESC] = "Brilho da interface e deste menu, em nits.",
[UI_MENU_HDR_HUE] = "Correção de matiz",
[UI_MENU_HDR_HUE_DESC] = "Quanto as cores brilhantes mantêm o matiz que tinham antes da curva de tons; 0 deixa que "
"mudem com a curva.",
[UI_MENU_HDR_GAMMA] = "Correção de gama",
[UI_MENU_HDR_GAMMA_DESC] = "Mostra a imagem como uma tela de gama 2.2 ou BT.1886 (2.4) mostraria, como o jogo foi "
"feito para ser visto; Desligado mantém a curva sRGB, com sombras mais claras.",
[UI_MENU_HDR_TONEMAP] = "Curva de tons",
[UI_MENU_HDR_TONEMAP_DESC] = "Vanilla: a curva do próprio jogo, com brilho SDR. PsychoV35: a cena por um modelo da "
"resposta do olho, ajustada ao cinza médio e ao tom do jogo, até o pico da sua tela. "
"RenoDRT: o visual SDR do jogo levado até o pico pelo brilho.",
[UI_MENU_HDR_EXPOSURE] = "Exposição",
[UI_MENU_HDR_EXPOSURE_DESC] = "Brilho de toda a imagem antes da curva de tons; 100 % a deixa como está.",
[UI_MENU_HDR_HIGHLIGHTS] = "Realces",
[UI_MENU_HDR_HIGHLIGHTS_DESC] = "Brilho das partes claras; 50 as deixa como estão.",
[UI_MENU_HDR_SHADOWS] = "Sombras",
[UI_MENU_HDR_SHADOWS_DESC] = "Brilho das partes escuras; 50 as deixa como estão.",
[UI_MENU_HDR_CONTRAST] = "Contraste",
[UI_MENU_HDR_CONTRAST_DESC] = "Contraste em torno do cinza médio; 50 o deixa como está.",
[UI_MENU_HDR_SATURATION] = "Saturação",
[UI_MENU_HDR_SATURATION_DESC] = "Força de todas as cores; 50 a deixa como está.",
[UI_MENU_HDR_HIGHLIGHT_SAT] = "Saturação dos realces",
[UI_MENU_HDR_HIGHLIGHT_SAT_DESC] = "Força das cores das partes mais claras; 50 a deixa como está.",
[UI_MENU_HDR_BLOWOUT] = "Estouro",
[UI_MENU_HDR_BLOWOUT_DESC] = "Leva as partes mais claras para o branco; 0 mantém a cor delas.",
[UI_MENU_HDR_FLARE] = "Flare",
[UI_MENU_HDR_FLARE_DESC] = "Ergue as partes mais escuras como um pouco de luz difusa faria; 0 mantém o preto preto.",
[UI_MENU_HDR_GRADE] = "Gradação de cor",
[UI_MENU_HDR_GRADE_DESC] = "Quanto da gradação de cor do próprio jogo a imagem HDR mantém; 0 é a cena sem ela.",
[UI_MENU_HDR_MIDGRAY] = "Cinza médio",
[UI_MENU_HDR_MIDGRAY_DESC] = "Onde fica o cinza médio da cena. Vanilla: onde a curva do próprio jogo o coloca. "
"Render: no valor da cena, um pouco mais escuro.",
[UI_MENU_HDR_MATCH_SLOPE] = "Igualar inclinação do tom",
[UI_MENU_HDR_MATCH_SLOPE_DESC] = "Dá aos tons médios o contraste da curva do próprio jogo.",
[UI_MENU_HDR_TONE_SLOPE] = "Inclinação do tom",
[UI_MENU_HDR_TONE_SLOPE_DESC] = "Inclinação da curva de tons no cinza médio; 50 a deixa como está.",
[UI_MENU_HDR_HUE_CLIP] = "Emulação do corte de matiz",
[UI_MENU_HDR_HUE_CLIP_DESC] = "Quanto as cores brilhantes viram como onde a imagem SDR do jogo estoura: o fogo "
"para o amarelo e o branco. 0 mantém o matiz delas.",
[UI_MENU_PROMPTS] = "Ícones de botões",
[UI_MENU_PROMPTS_DESC] = "Quais botões os ícones do jogo mostram: no texto, no ícone de ação e nas notas da "
"ocarina. Nintendo: os do próprio jogo. Xbox e PlayStation: os botões desse controle (LB, "
"RB, LT, RT, Menu, Exibir; L1, R1, L2, R2, Options, Create), e A, B, X e Y aparecem como "
"o botão que o layout acima aperta (com Nintendo (A à direita) o botão da direita faz A, "
"então os ícones de A mostram B, ou círculo). Teclado e mouse: a tecla de cada botão (E, "
"Ctrl, Espaço, clique esquerdo...), WASD para andar e o mouse para a câmera. Os arquivos "
"dos ícones são feitos a partir de imagens de botões com tools/pad_prompts.py, com as "
"teclas como o nx2navi.ini as define quando ele roda. O jogo lê os ícones ao iniciar, "
"então eles mudam depois de reiniciar. Eles fazem parte dos arquivos do jogo, então um "
"botão remapeado em Controles continua com o ícone antigo na tela até os arquivos serem "
"feitos de novo.",
[UI_MENU_PROMPTS_NINTENDO] = "Nintendo",
[UI_MENU_PROMPTS_XBOX] = "Xbox",
[UI_MENU_PROMPTS_PLAYSTATION] = "PlayStation",
[UI_MENU_PROMPTS_PC] = "Teclado e mouse",
[UI_MENU_MOUSE_MODE] = "Câmera com o mouse",
[UI_MENU_MOUSE_MODE_DESC] = "Direta: a câmera gira o quanto o mouse se move, como num jogo de PC, sem zona morta nem curva do analógico (jogos 1.1.1 e 1.4.3; as outras versões usam a emulação do analógico). Emulação do analógico: o mouse age como o analógico direito.",
[UI_MENU_MOUSE_STICK] = "Emulação do analógico",
[UI_MENU_MOUSE_DIRECT] = "Direta",
[UI_MENU_MENU_CURSOR] = "Mouse nos menus do jogo",
[UI_MENU_MENU_CURSOR_DESC] = "Nos menus do próprio jogo (título, inventário, lojas, escolhas de diálogo) o ponteiro aparece: o item sob ele fica selecionado, o clique esquerdo confirma e o direito volta. Só depois de usar o mouse ou uma tecla por último, então com um controle os menus ficam como antes (jogo 1.4.3).",
[UI_MENU_PROMPTS_MISSING] = "faltam os arquivos dos ícones: tools/pad_prompts.py os cria",
[UI_MENU_PROMPTS_FAILED] = "arquivos dos ícones danificados: crie de novo com tools/pad_prompts.py",
[UI_MENU_PROMPTS_RESTART] = "os ícones mudam após reiniciar",
[UI_MENU_PROMPTS_OFF_SHAPE] = "desligados numa resolução de jogo que não é 16:9",
[UI_MENU_PROMPTS_OFF_MODS] = "desligados: um mod de RomFS substitui os arquivos deles",
[UI_MENU_PROMPTS_OFF_PATCHES] = "desligados enquanto NX2NAVI_ROMFS_PATCHES está definido",
[UI_MENU_RESTART] = "Reiniciar agora",
[UI_MENU_RESTART_DESC] = "Fecha o jogo e o abre de novo com os novos ícones. O progresso desde o último "
"salvamento é perdido.",
[UI_MENU_RESTART_CONFIRM] = "Reiniciar o jogo agora? O progresso desde o último salvamento é perdido.",
[UI_MENU_QUIT_CONFIRM] = "Sair do jogo? O progresso desde o último salvamento é perdido.",
[UI_MENU_RESTART_YES] = "Reiniciar",
[UI_MENU_RESTART_COUNT] = "Reiniciar (%d)",
[UI_MENU_RESTART_SAVING] = "O jogo está salvando: dá para reiniciar em um instante.",
[UI_MENU_QUIT_SAVING] = "O jogo está salvando: dá para sair em um instante.",
[UI_MENU_STICK_SENS] = "Velocidade da câmera (analógico)",
[UI_MENU_STICK_SENS_DESC] = "Velocidade da câmera no analógico direito.",
[UI_MENU_WALK_KEY] = "Tecla de andar",
[UI_MENU_WALK_KEY_DESC] = "Segure para andar no teclado.",
[UI_MENU_WALK_KEY_TAKEN] = "também %s",
[UI_MENU_WALK_SCALE] = "Intensidade do andar",
[UI_MENU_WALK_SCALE_DESC] = "A inclinação dos analógicos do teclado enquanto a tecla de andar está segura. Metade "
"é andar, a inclinação total é correr.",
[UI_MENU_OV_SCALE_DOWN] = "bilinear (nitidez FSR 0)",
[UI_MENU_SHADOW_SCALE] = "Resolução das sombras",
[UI_MENU_SHADOW_SCALE_DESC] = "Sombras mais nítidas. Mais alto exige mais da placa de vídeo.",
[UI_MENU_SHADOW_RANGE] = "Alcance das cascatas de sombra",
[UI_MENU_SHADOW_RANGE_DESC] = "Mantém as sombras nítidas a distâncias maiores.",
[UI_MENU_CONTACT_SHADOWS] = "Sombras de contato",
[UI_MENU_CONTACT_SHADOWS_DESC] = "Pequenas sombras do sol que os mapas de sombra não pegam: nos pés, sob pedras, "
"na grama e em dobras. Traçadas na tela depois da iluminação. Vale no próximo "
"início.",
[UI_MENU_PCSS] = "Sombras suaves",
[UI_MENU_PCSS_DESC] = "Sombras do sol nítidas onde um objeto toca o chão e mais suaves quanto mais longe a sombra "
"cai (PCSS). 0 mantém o filtro do jogo. Vale no próximo início.",
[UI_MENU_DLAA] = "NVIDIA DLSS / DLAA",
[UI_MENU_DLAA_DESC] = "NVIDIA DLSS para a cena 3D (placas NVIDIA RTX; nvngx_dlss.dll ao lado do nx2navi.exe): bordas "
"mais suaves e menos cintilação. O HUD não é afetado. O modo abaixo define a resolução de "
"onde ele parte. Vale após reiniciar.",
[UI_MENU_DLSS] = "Modo do DLSS",
[UI_MENU_DLSS_DESC] = "DLAA desenha a cena 3D na resolução cheia. Qualidade, Equilibrado, Desempenho e Ultra "
"Desempenho a desenham em 67, 58, 50 e 33 % e deixam o DLSS ampliá-la, o que poupa tempo da "
"GPU; eles substituem a escala 3D. Vale na hora.",
[UI_MENU_DLSS_DLAA] = "DLAA (nativo)",
[UI_MENU_DLSS_QUALITY] = "Qualidade",
[UI_MENU_DLSS_BALANCED] = "Equilibrado",
[UI_MENU_DLSS_PERFORMANCE] = "Desempenho", [UI_MENU_DLSS_ULTRA] = "Ultra Desempenho",
[UI_MENU_DLSS_PRESET] = "Modelo do DLSS",
[UI_MENU_DLSS_PRESET_DESC] = "Qual modelo do DLSS roda. Automático segue a recomendação da NVIDIA para cada modo: K "
"para DLAA, Qualidade e Equilibrado, M para Desempenho, L para Ultra Desempenho. J: um "
"pouco menos de rastro atrás de personagens em movimento, um pouco mais de cintilação. K: "
"o modelo mais nítido em todos os modos. Vale na hora.",
[UI_MENU_DLSS_PRESET_DEFAULT] = "Automático", [UI_MENU_DLSS_PRESET_K] = "K (mais nítido)",
[UI_MENU_DLSS_PRESET_J] = "J (menos rastro)",
[UI_MENU_DLSS_CHARS] = "Rastros de personagens no DLSS",
[UI_MENU_DLSS_CHARS_DESC] = "Reduz os rastros fracos atrás de personagens, animais e do que eles seguram em movimento: "
"ali o DLSS usa menos dos quadros anteriores. Mais forte remove mais rastros e deixa essas "
"bordas um pouco menos suaves. Vale na hora.",
[UI_MENU_DLSS_CHARS_OFF] = "Desligado", [UI_MENU_DLSS_CHARS_LIGHT] = "Leve", [UI_MENU_DLSS_CHARS_MEDIUM] = "Médio",
[UI_MENU_DLSS_CHARS_FULL] = "Total",
[UI_MENU_FXAA] = "Antisserrilhado do jogo (FXAA)",
[UI_MENU_FXAA_DESC] = "A suavização de bordas FXAA do próprio jogo. Borra um pouco os detalhes finos; com o DLAA "
"ligado não é necessária.",
[UI_MENU_AA] = "Antisserrilhado",
[UI_MENU_AA_DESC] = "Como as bordas da imagem 3D são suavizadas. SMAA do jogo é o próprio, como no console. Desligado "
"deixa as bordas como desenhadas. FXAA é rápido e um pouco suave. SMAA encontra mais bordas que o do "
"jogo e mantém os detalhes nítidos. TAA é o DLSS ou o FSR em tamanho cheio: as bordas mais "
"estáveis em movimento; define o escalonamento. Com DLSS ou FSR em Upscaling, o TAA deles "
"sempre roda, e a escolha daqui roda junto. Vale na hora.",
[UI_MENU_AA_GAME] = "SMAA do jogo",
[UI_MENU_AA_FXAA] = "FXAA",
[UI_MENU_AA_SMAA] = "SMAA (Ultra)",
[UI_MENU_AA_TAA_DLSS] = "TAA (NVIDIA DLAA)",
[UI_MENU_AA_TAA_FSR] = "TAA (AMD FSR 3.1)",
[UI_MENU_AA_TAA_FSR4] = "TAA (%s)",
[UI_MENU_AA_WITH_TAA] = "mais o TAA do Upscaling",
[UI_MENU_TAB_CHEATS] = "Cheats",
[UI_MENU_CHEATS_NONE] = "Nenhum cheat para esta versão do jogo. Os cheats de um mod são um arquivo de cheats do "
"Atmosphere na pasta cheats dele, com o nome da build do jogo: mods\\<mod>\\cheats\\%s. "
"Reinicie o jogo para lê-los. Para cheats que alteram o código do jogo, o jogo se recompila "
"sozinho ao iniciar (alguns minutos).",
[UI_MENU_CHEATS_MOD] = "%s: %d cheats",
[UI_MENU_CHEAT_CODE_DESC] = "Altera o código do jogo. Liga e desliga na hora.",
[UI_MENU_CHEAT_KEY_DESC] = "Altera o código do jogo enquanto você segura %s. Liga e desliga na hora.",
[UI_MENU_CHEAT_DATA_DESC] = "Escreve na memória do jogo a cada quadro enquanto está ligado.",
[UI_MENU_CHEAT_MASTER] = "sempre ligado",
[UI_MENU_CHEAT_MASTER_DESC] = "O código mestre do arquivo: está sempre ligado.",
[UI_MENU_CHEAT_RESTORE] = "desnecessário",
[UI_MENU_CHEAT_RESTORE_DESC] = "Ele só escreve de volta o código original do jogo. Desligar um cheat já faz isso.",
[UI_MENU_CHEAT_REBUILD] = "após recompilar",
[UI_MENU_CHEAT_REBUILD_DESC] = "Este cheat altera o código do jogo e é novo ou foi editado depois que o jogo foi "
"compilado. O jogo o compila na próxima vez que iniciar (alguns minutos), ou use "
"Recompilar o jogo agora.",
[UI_MENU_CHEAT_UNSUPPORTED] = "não suportado",
[UI_MENU_CHEAT_UNSUPPORTED_DESC] = "Este cheat não pode ser usado com esta versão do jogo:",
[UI_MENU_SAVES] = "Saves",
[UI_MENU_SAVE_EXPORT] = "Exportar save",
[UI_MENU_SAVE_EXPORT_DESC] = "Grava seu save (todos os slots) em um arquivo zip na pasta Downloads, para passar a "
"outro jogador ou anexar a um relato de bug. Ele nunca contém suas chaves nem arquivos "
"do jogo.",
[UI_MENU_SAVE_EXPORT_BUG] = "Exportar para relato de bug",
[UI_MENU_SAVE_EXPORT_BUG_DESC] = "O mesmo zip com o log desta execução e suas configurações (nx2navi.ini), que "
"mostram o que aconteceu e com quais configurações. Anexe-o ao seu relato de bug.",
[UI_MENU_SAVE_IMPORT] = "Importar save",
[UI_MENU_SAVE_IMPORT_DESC] = "Escolha um save que alguém compartilhou (um zip NX2navi-save). Ele substitui seu save, "
"todos os slots, na próxima inicialização: o jogo mantém seu progresso na memória e o "
"gravaria por cima de um save substituído agora. Seu save atual é copiado antes para a "
"pasta saves.",
[UI_MENU_SAVE_IMPORT_WAITING] = "na próxima inicialização",
[UI_MENU_SAVE_IMPORT_CANCEL] = "Cancelar a importação",
[UI_MENU_SAVE_IMPORT_CANCEL_DESC] = "Mantém seu save como está: o save que aguardava a próxima inicialização é "
"descartado.",
[UI_MENU_SAVE_BUSY] = "trabalhando…",
[UI_MENU_SAVE_EXPORTED] = "Salvo como %s",
[UI_MENU_SAVE_IMPORT_READY] = "O save (NX2navi %s) é carregado na próxima inicialização: selecione Reiniciar abaixo. "
"Seu save atual é copiado antes para a pasta saves.",
[UI_MENU_SAVE_IMPORT_CANCELLED] = "Importação cancelada; seu save continua como estava.",
[UI_MENU_SAVE_IMPORTED] = "Um save compartilhado foi importado nesta inicialização. Seu save anterior está em %s",
[UI_MENU_SAVE_IMPORTED_NEW] = "Um save compartilhado foi importado nesta inicialização.",
[UI_MENU_SAVE_E_NO_SAVE] = "Ainda não há save para exportar: jogue até o jogo salvar.",
[UI_MENU_SAVE_E_READ_SAVE] = "Um arquivo do seu save não pôde ser lido; tente de novo daqui a pouco.",
[UI_MENU_SAVE_E_WRITE] = "Não foi possível gravar o zip em %s.",
[UI_MENU_SAVE_E_READ] = "Não foi possível ler %s.",
[UI_MENU_SAVE_E_STAGE] = "Não foi possível preparar o save para a próxima inicialização; o log diz o motivo.",
[UI_MENU_SAVE_E_NOT_SAVE] = "%s não é um save exportado pelo NX2navi.",
[UI_MENU_SAVE_E_OTHER_GAME] = "%s é um save de outro jogo.",
[UI_MENU_SAVE_E_NEWER] = "%s foi feito por um NX2navi mais novo: atualize o NX2navi primeiro.",
[UI_MENU_SAVE_E_DAMAGED] = "%s está danificado: baixe-o de novo.",
[UI_MENU_SAVE_E_UNSAFE] = "%s foi recusado: contém arquivos fora de um save, links ou dados demais.",
[UI_MENU_CAPTURE_SAVED] = "Captura de bug %d salva",
[UI_MENU_CAPTURE_FOLDER] = "Pasta: %s",
[UI_MENU_CAPTURE_FAILED] = "Não foi possível salvar a captura de bug %d",
[UI_BOOT_TITLE] = "Preparando shaders",
[UI_BOOT_STARTING] = "Iniciando", [UI_BOOT_SHADERS] = "Shaders: %lld de %lld", [UI_BOOT_PIPELINES] = "Pipelines: %lld de %lld",
[UI_BOOT_COMPUTE] = "Pipelines de computação: %lld de %lld", [UI_BOOT_DRIVER_CACHE] = "Cache do driver: %lld de %lld",
[UI_MENU_CHEATS_REBUILD] = "Recompilar o jogo agora",
[UI_MENU_CHEATS_REBUILD_DESC] = "Alguns cheats alteram o código do jogo e ainda não foram compilados nele: são "
"novos ou editados, ou a última recompilação falhou ou foi cancelada. Fecha o "
"jogo; o instalador os compila (alguns minutos) e inicia o jogo de novo. O "
"progresso desde o último salvamento é perdido.",
[UI_MENU_MODS_EXEFS_UNSUPPORTED] = "Este mod altera o código do jogo (exefs) de um jeito que o port não consegue "
"aplicar, então o mod inteiro fica desligado. %s",
[UI_MENU_MODS_EXEFS_OTHER] = "Os patches de código dele (exefs) são para outra versão do jogo.",
[UI_MENU_MODS_EXEFS_ON] = "Patches de código em uso: %d arquivos.",
[UI_MENU_MODS_REPLACES_BUILTIN] = "Patches de código em uso: %d arquivos. Eles substituem o patch do próprio port "
"%s, que fica desligado enquanto este mod está ligado.",
};
// Simplified Chinese: this row covers the software keyboard and the whole menu, so the menu and the overlay read Chinese
// when the menu language is zh-Hans (ui_text.h menu_text). The rows are fixed width, so the strings stay close to the
// English length; an id without a Chinese entry falls back to English.
static const char *const text_zh_hans[UI_TEXT_COUNT] = {
SWKBD("文字输入", "请输入名字", "马儿", "确定", "取消", "手柄:A 确定,B 取消"),
[UI_MENU_TITLE] = "设置",
[UI_MENU_TAB_SCREEN] = "显示",
[UI_MENU_TAB_GAME] = "游戏",
[UI_MENU_TAB_SOUND] = "声音",
[UI_MENU_TAB_CONTROLS] = "操作",
[UI_MENU_TAB_AMIIBO] = "amiibo",
[UI_MENU_TAB_MENU] = "菜单",
[UI_MENU_TAB_ADVANCED] = "高级",
[UI_MENU_TAB_MODS] = "模组",
[UI_MENU_MODS_BUILTIN] = "移植版内置", [UI_MENU_MODS_INSTALLED] = "已安装的模组",
[UI_MENU_MODS_NONE] = "还没有模组。把模组解压到 mods 文件夹,每个模组一个文件夹,里面放 romfs 文件夹,然后重启游戏。"
"模组管理器也可以把合并后的模组导出到那里的一个文件夹。",
[UI_MENU_MODS_OPEN] = "打开模组文件夹",
[UI_MENU_MODS_OPEN_DESC] = "显示游戏加载模组的文件夹。不存在时会创建它。",
[UI_MENU_MODS_ROW_DESC] = "替换的游戏文件:%u。新增的文件:%u。",
[UI_MENU_MODS_OVERRIDDEN] = "它的 %u 个文件改用列表中更靠上的 %s 的文件。",
[UI_MENU_MODS_MOVE_HINT] = "上方按钮或 Ctrl+上 上移,左侧按钮或 Ctrl+下 下移。两个模组修改同一个文件时,以靠上的为准。"
"更改在重启后生效。",
[UI_MENU_MODS_EMPTY] = "此文件夹中没有 romfs、exefs 或 cheats 文件。",
[UI_MENU_MODS_SUBSDK] = "此模组带有自己的游戏代码(subsdk 插件或替换的 main)。移植版无法加载代码模块,因此整个模组保持关闭。",
[UI_MENU_MODS_EXEFS_LATER] = "此模组修改游戏代码(exefs)。游戏会在下次启动时把这些补丁构建进去(重新构建需要几分钟);在此之前整个模组保持关闭。",
[UI_MENU_MODS_CHEATS] = "金手指:%d 个。在“金手指”标签页中开关。",
[UI_MENU_MODS_CHEATS_FILE] = "此游戏版本的金手指在启动时从此模组的 cheats\\%s 读取。",
[UI_MENU_MODS_BAD_NAME] = "文件夹名称含有 |,模组列表用它分隔名称。请重命名该文件夹。",
[UI_MENU_MODS_OTHER_VERSION] = "它有 %u 个文件是为其他游戏版本制作的,已被跳过。请寻找适用于你的游戏版本的此模组。",
[UI_MENU_MODS_UNUSED] = "未使用",
[UI_MENU_MODS_FPS60] = "60 FPS 补丁",
[UI_MENU_MODS_FPS60_DESC] = "移植版自带的 60 帧补丁。在“游戏”页的帧率上限中设置。",
[UI_MENU_MODS_RES] = "分辨率补丁",
[UI_MENU_MODS_RES_DESC] = "移植版自带的 1080p 以上分辨率补丁。在“显示”页的游戏分辨率中设置。",
[UI_MENU_MODS_QUICKMENU] = "快捷菜单修复",
[UI_MENU_MODS_QUICKMENU_DESC] = "移植版对 60 FPS 下武器、盾牌和材料快捷菜单黑色背景的修复。",
[UI_MENU_CONTINUE] = "继续",
[UI_MENU_QUIT] = "退出游戏",
[UI_MENU_ON] = "开",
[UI_MENU_OFF] = "关",
[UI_MENU_AUTO] = "自动",
[UI_MENU_DEFAULT_MARK] = "默认",
[UI_MENU_AFTER_RESTART] = "重启后生效",
[UI_MENU_SET_BY_ENV] = "由环境变量设定",
[UI_MENU_SAVE_FAILED] = "无法保存设置",
[UI_MENU_INI_UNKNOWN] = "nx2navi.ini:以下不是此版本的设置,已忽略:%s",
[UI_MENU_VERSION] = "NX2navi %s,游戏 %s",
[UI_MENU_FULLSCREEN] = "全屏",
[UI_MENU_FULLSCREEN_DESC] = "全屏运行。按 F11 切换。",
[UI_MENU_WINDOW_SIZE] = "窗口大小",
[UI_MENU_WINDOW_SIZE_DESC] = "非全屏时的窗口大小。",
[UI_MENU_WINDOW_SIZE_CUSTOM] = "自定义",
[UI_MENU_PRESENT_DESC] = "防止画面撕裂。关闭可略微降低延迟。",
[UI_MENU_PRESENT_MAILBOX] = "Mailbox",
[UI_MENU_PRESENT_VSYNC] = "垂直同步",
[UI_MENU_PRESENT_IMMEDIATE] = "立即",
[UI_MENU_PRESENT_IN_USE] = "使用中:%s",
[UI_MENU_LOW_LATENCY] = "低延迟",
[UI_MENU_LOW_LATENCY_DESC] = "显卡驱动推迟每一帧的开始,尽可能晚地读取手柄输入(NVIDIA Reflex、AMD Anti-Lag),"
"并由它保持帧率上限。增强让显卡保持最高频率。",
[UI_MENU_LOW_LATENCY_BOOST] = "开启 + 增强",
[UI_MENU_LOW_LATENCY_NO_DRIVER] = "此显卡驱动没有低延迟模式",
[UI_MENU_LOW_LATENCY_DLSSG] = "DLSS 帧生成使用自带的低延迟",
[UI_MENU_LOW_LATENCY_FG] = "此显卡运行帧生成时关闭",
[UI_MENU_FRAMEGEN_DESC_ANY] = "添加生成的帧,使动作更流畅,可搭配 Upscaling 中的任意选项。",
[UI_MENU_FRAMEGEN_DESC_NGX] = "添加生成的帧,使动作更流畅。NVIDIA DLSS 需要在游戏启动时于 Upscaling 中选择 DLSS "
"模式;之后可搭配 Upscaling 中的任意选项。",
[UI_MENU_FRAMEGEN_NOTE_NGX] = "需要在游戏启动时开启 DLSS",
[UI_MENU_LOW_LATENCY_FAILED] = "使用中:关闭,驱动拒绝了(见日志中的 lowlat)",
[UI_MENU_GPU] = "显卡",
[UI_MENU_GPU_DESC] = "运行游戏所用的显卡。",
[UI_MENU_GPU_AUTO] = "自动",
[UI_MENU_PERF_OVERLAY] = "性能浮层",
[UI_MENU_PERF_OVERLAY_DESC] = "显示帧率和系统信息。按 F10 切换模式。",
[UI_MENU_PERF_OFF] = "关",
[UI_MENU_PERF_FPS] = "FPS",
[UI_MENU_PERF_FULL] = "完整",
[UI_PERF_LINE_FPS] = "%.0f fps",
[UI_MENU_GRAPHICS] = "画面",
[UI_MENU_OUTPUT_RES] = "游戏分辨率",
[UI_MENU_OUTPUT_RES_DESC] = "游戏的渲染分辨率。越高越吃显卡。",
[UI_MENU_RENDER_SCALE] = "3D 渲染比例",
[UI_MENU_RENDER_SCALE_DESC] = "3D 场景的大小。越高越清晰,但更慢。",
[UI_MENU_RENDER_SCALE_GAME] = "游戏(83%)",
[UI_MENU_UPSCALER] = "放大到窗口",
[UI_MENU_UPSCALER_DESC] = "游戏画面适配窗口的方式。窗口更大时:FSR 比双线性更能保留边缘和细节。"
"窗口更小时(Ocarina 绘制 2560 × 1440):画面被缩小,FSR 按下方强度锐化。",
[UI_MENU_UPSCALER_FSR] = "AMD FSR 1",
[UI_MENU_UPSCALER_BILINEAR] = "双线性",
[UI_MENU_UPSCALING_NATIVE] = "原生(100%)",
[UI_MENU_UPSCALING_DESC] = "画面如何平滑并缩放到窗口。原生:以画面的完整尺寸绘制 3D 场景,不使用超分辨率:"
"最清晰,GPU 负担也最大。",
[UI_MENU_UPSCALING_DESC_FSR] = "画面如何平滑并缩放到窗口。原生:以画面的完整尺寸绘制 3D 场景,不使用超分辨率:"
"最清晰,GPU 负担也最大。",
[UI_MENU_UPSCALING_DESC_NO_FSR] = "画面如何平滑并缩放到窗口。原生:以画面的完整尺寸绘制 3D 场景,不使用超分辨率:"
"最清晰,GPU 负担也最大。此处不提供 AMD FSR 3.1:它需要 "
"amd_fidelityfx_vk.dll,但无法加载。",
[UI_MENU_GAME_ASPECT] = "宽屏",
[UI_MENU_GAME_ASPECT_DESC] = "扩大视野。界面和菜单保持 16:9。",
[UI_MENU_GAME_ASPECT_16_9] = "16:9(游戏原生)", [UI_MENU_GAME_ASPECT_WINDOW] = "窗口比例",
[UI_MENU_GAME_ASPECT_21_9] = "21:9", [UI_MENU_GAME_ASPECT_32_9] = "32:9",
[UI_MENU_FOV] = "视野",
[UI_MENU_FOV_DESC] = "镜头能看到多大范围,以游戏自身视野的百分比表示。"
"仅限游戏版本 1.4.3。",
[UI_MENU_SHARPNESS] = "FSR 锐度",
[UI_MENU_SHARPNESS_DESC] = "FSR 的锐化强度。0 为关闭。",
[UI_MENU_SHARPNESS_NEEDS_FSR] = "仅限 AMD FSR 1",
[UI_MENU_COLOR] = "色彩",
[UI_MENU_COLOR_PRESET] = "色彩配置",
[UI_MENU_COLOR_PRESET_DESC] = "同时设置下面四项。鲜艳:对比度和饱和度更高,暗部略微提亮(为 OLED 屏幕调校)。"
"清晰:对比度、饱和度和亮度都略高。改动任一项后,配置变为自定义。"
"HUD 随画面一起变化,本菜单不随之变化。",
[UI_MENU_COLOR_DEFAULT] = "游戏原样", [UI_MENU_COLOR_VIVID] = "鲜艳(OLED)",
[UI_MENU_COLOR_CLARITY] = "清晰", [UI_MENU_COLOR_CUSTOM] = "自定义",
[UI_MENU_COLOR_BRIGHTNESS] = "亮度",
[UI_MENU_COLOR_BRIGHTNESS_DESC] = "叠加到每种颜色上;0 表示不调整。",
[UI_MENU_COLOR_CONTRAST] = "对比度",
[UI_MENU_COLOR_CONTRAST_DESC] = "把颜色从中灰向外拉开(高于 100%)或向中灰收拢;"
"100% 表示不调整。",
[UI_MENU_COLOR_SATURATION] = "饱和度",
[UI_MENU_COLOR_SATURATION_DESC] = "颜色相对灰色的强度;100% 表示不调整。",
[UI_MENU_COLOR_GAMMA] = "伽马",
[UI_MENU_COLOR_GAMMA_DESC] = "小于 1 提亮暗部与中间调,大于 1 压暗;1 表示不调整。",
[UI_MENU_FPS_LIMIT] = "帧率上限",
[UI_MENU_FPS_LIMIT_DESC] = "游戏绘制的最高帧率。帧生成的帧在此之上另算。",
[UI_MENU_FPS_30] = "30 FPS",
[UI_MENU_FPS_40] = "40 FPS",
[UI_MENU_FPS_45] = "45 FPS",
[UI_MENU_FPS_60] = "60 FPS",
[UI_MENU_FPS_90] = "90 FPS",
[UI_MENU_FPS_120] = "120 FPS",
[UI_MENU_FPS_144] = "144 FPS",
[UI_MENU_FPS_DISPLAY] = "显示器刷新率",
[UI_MENU_FPS_DISPLAY_HZ] = "显示器刷新率(%.0f Hz)",
[UI_MENU_FPS_UNLIMITED] = "不限制",
[UI_MENU_FPS_RTSS] = "由 RivaTuner Statistics Server 限制",
[UI_MENU_FPS_RTSS_READONLY] = "RivaTuner 需要以管理员身份运行游戏",
[UI_MENU_FPS_RTSS_IGNORED] = "RivaTuner 未限制本游戏;由游戏自行限制",
[UI_MENU_FPS_RTSS_TWO] = "RivaTuner 自身的限制也在生效:两个限制器",
[UI_MENU_REALTIME] = "游戏速度跟随时钟",
[UI_MENU_REALTIME_DESC] = "按真实时间推进游戏,帧率低时游戏速度也不会变慢。",
[UI_MENU_CLOTH_REALTIME] = "布料跟随时钟",
[UI_MENU_CLOTH_REALTIME_DESC] = "布料和头发也按真实时间推进。",
[UI_MENU_HIGHFPS_FIX] = "高帧率修正",
[UI_MENU_HIGHFPS_FIX_DESC] = "修正帧率高于 30 时出现异常的物理效果,"
"以及帧率高于 60 时一直半透明或不可见的物体。",
[UI_MENU_GAME_LANG] = "游戏语言",
[UI_MENU_GAME_LANG_DESC] = "游戏文本和语音的语言。",
[UI_MENU_GAME_LANG_AUTO] = "自动",
[UI_MENU_OPERATION_MODE] = "主机模式",
[UI_MENU_OPERATION_MODE_DESC] = "以底座或掌机模式运行游戏。",
[UI_MENU_MODE_DOCKED] = "底座模式",
[UI_MENU_MODE_HANDHELD] = "掌机模式",
[UI_MENU_ASSUME_FOCUS] = "后台保持运行",
[UI_MENU_ASSUME_FOCUS_DESC] = "切换到其他窗口时游戏继续运行。",
[UI_MENU_TEXT_SPEED] = "文字速度",
[UI_MENU_TEXT_SPEED_DESC] = "游戏对话框显示文字的速度。快速为三倍速度;即时则每页立即全部显示。"
"游戏不允许加快的文字(例如与过场动画或语音同步的台词)保持原速。",
[UI_MENU_TEXT_SPEED_NORMAL] = "正常", [UI_MENU_TEXT_SPEED_FAST] = "快速",
[UI_MENU_TEXT_SPEED_INSTANT] = "即时",
[UI_MENU_VOLUME] = "音量",
[UI_MENU_MENU_SOUNDS] = "菜单音效", [UI_MENU_MENU_SOUNDS_DESC] = "本菜单的音效音量。",
[UI_MENU_VOLUME_DESC] = "游戏总音量。",
[UI_MENU_MOTION] = "体感操作",
[UI_MENU_MOTION_DESC] = "使用手柄陀螺仪瞄准。",
[UI_MENU_RUMBLE_STRENGTH] = "振动强度",
[UI_MENU_RUMBLE_STRENGTH_DESC] = "震动强度。",
[UI_MENU_RUMBLE_CURVE] = "振动曲线",
[UI_MENU_RUMBLE_CURVE_DESC] = "数值越低,轻微震动越强。",
[UI_MENU_RUMBLE_TRIGGERS] = "扳机振动(Xbox)",
[UI_MENU_RUMBLE_TRIGGERS_DESC] = "同时震动 Xbox 手柄的扳机。",
[UI_MENU_RUMBLE_HD] = "HD 振动(Switch)",
[UI_MENU_RUMBLE_HD_DESC] = "将游戏的细腻振动原样发送到 Switch Pro 手柄或 Joy-Con。振动强度仍然有效:默认值即游戏原本的强度。",
[UI_MENU_RUMBLE_HD_NEEDS] = "需要 Switch Pro 手柄或 Joy-Con",
[UI_MENU_PAD_LAYOUT] = "按键布局",
[UI_MENU_PAD_LAYOUT_DESC] = "设置哪个按键作为 A 键。Nintendo:按位置,A 在右、B 在下、X 在上、Y 在左。Xbox 和 PlayStation:"
"按标注,A 在下、B 在右、X 在左、Y 在上(PlayStation 手柄上为叉、圆圈、方块和三角)。自动:"
"Nintendo 标注的手柄用 Nintendo,其他手柄按标注。",
[UI_MENU_PAD_LAYOUT_AUTO] = "自动",
[UI_MENU_PAD_LAYOUT_NINTENDO] = "Nintendo(A 在右)",
[UI_MENU_PAD_LAYOUT_XBOX] = "Xbox(A 在下)",
[UI_MENU_PAD_LAYOUT_PLAYSTATION] = "PlayStation(A 在下)",
[UI_MENU_PAD_LAYOUT_IN_USE] = "使用中:%s",
[UI_MENU_GROUP_STICKS] = "摇杆",
[UI_MENU_LSTICK_DEADZONE] = "左摇杆死区", [UI_MENU_RSTICK_DEADZONE] = "右摇杆死区",
[UI_MENU_STICK_DEADZONE_DESC] = "摇杆需要推动多少才生效。摇杆漂移时请调高。",
[UI_MENU_STICK_DEADZONE_NOW] = "当前摇杆:%.0f %%",
[UI_MENU_MOUSE_SENS] = "鼠标视角灵敏度",
[UI_MENU_MOUSE_SENS_DESC] = "鼠标转动视角的速度。",
[UI_BINDS_HELP] = "选中一个格子后按 A 或 Enter,再按键、鼠标键或手柄按键。"
"Delete 或 X 清除格子。已占用的按键会移到这里;"
"手柄按键与它替换的那个对调。",
[UI_BINDS_COL_KEY1] = "按键 1",
[UI_BINDS_COL_KEY2] = "按键 2",
[UI_BINDS_COL_PAD] = "手柄",
[UI_BINDS_GROUP_BUTTONS] = "按键",
[UI_BINDS_GROUP_MOVE] = "移动",
[UI_BINDS_GROUP_CAMERA] = "视角",
[UI_BINDS_PRESS_KEY] = "请为“%s”按下一个键或鼠标键",
[UI_BINDS_PRESS_PAD] = "请为“%s”按下一个手柄按键",
[UI_BINDS_CANCEL_HINT] = "Esc 取消,或等待 %d 秒",
[UI_BINDS_TAKEN] = "%s 已从 %s 移走",
[UI_BINDS_SWAPPED] = "%s 已与 %s 对调",
[UI_BINDS_RESET] = "重置所有按键",
[UI_BINDS_RESET_DESC] = "恢复默认按键。",
[UI_BIND_A] = "A",
[UI_BIND_B] = "B",
[UI_BIND_X] = "X",
[UI_BIND_Y] = "Y",
[UI_BIND_LCLICK] = "左摇杆按下",
[UI_BIND_RCLICK] = "右摇杆按下",
[UI_BIND_L] = "L",
[UI_BIND_R] = "R",
[UI_BIND_ZL] = "ZL",
[UI_BIND_ZR] = "ZR",
[UI_BIND_PLUS] = "+ 键",
[UI_BIND_MINUS] = "- 键",
[UI_BIND_LEFT] = "十字键左",
[UI_BIND_UP] = "十字键上",
[UI_BIND_RIGHT] = "十字键右",
[UI_BIND_DOWN] = "十字键下",
[UI_BIND_LSTICK_LEFT] = "向左移动",
[UI_BIND_LSTICK_UP] = "向前移动",
[UI_BIND_LSTICK_RIGHT] = "向右移动",
[UI_BIND_LSTICK_DOWN] = "向后移动",
[UI_BIND_RSTICK_LEFT] = "视角左转",
[UI_BIND_RSTICK_UP] = "视角上抬",
[UI_BIND_RSTICK_RIGHT] = "视角右转",
[UI_BIND_RSTICK_DOWN] = "视角下压",
[UI_BIND_DESC_A] = "动作:对话、打开、拾取、攀爬、抓住。按住可冲刺。",
[UI_BIND_DESC_B] = "收起、取消、返回。在游戏选项中开启“交换跳跃按键”时为跳跃。",
[UI_BIND_DESC_X] = "跳跃。在游戏选项中开启“交换跳跃按键”时为收起。",
[UI_BIND_DESC_Y] = "挥剑攻击。",
[UI_BIND_DESC_LCLICK] = "按下左摇杆(游戏的操作说明中没有)。",
[UI_BIND_DESC_RCLICK] = "把视角转回林克身后。",
[UI_BIND_DESC_L] = "快捷选择道具;游戏菜单中的上一页。",
[UI_BIND_DESC_R] = "快捷选择道具;游戏菜单中的下一页。",
[UI_BIND_DESC_ZL] = "注目(按住或切换:游戏选项中的注目方式)。",
[UI_BIND_DESC_ZR] = "使用所选道具:弹弓、弓、回旋镖、钩爪、炸弹、瓶子。",
[UI_BIND_DESC_PLUS] = "菜单:道具、装备、收集、系统。",
[UI_BIND_DESC_MINUS] = "地图。",
[UI_BIND_DESC_LEFT] = "吹奏陶笛。",
[UI_BIND_DESC_UP] = "戴上或摘下饰品。",
[UI_BIND_DESC_RIGHT] = "和娜薇说话。",
[UI_BIND_DESC_DOWN] = "更换靴子。",
[UI_BIND_DESC_MOVE] = "移动林克。",
[UI_BIND_DESC_CAMERA] = "转动镜头。",
[UI_BIND_SHAKE] = "晃动视角摇杆",
[UI_BIND_DESC_SHAKE] = "晃动右摇杆。按住可持续晃动。",
[UI_KEY_SPACE] = "空格",
[UI_KEY_TAB] = "Tab",
[UI_KEY_LSHIFT] = "左 Shift",
[UI_KEY_LCTRL] = "左 Ctrl",
[UI_KEY_UP] = "上方向键",
[UI_KEY_DOWN] = "下方向键",
[UI_KEY_LEFT] = "左方向键",
[UI_KEY_RIGHT] = "右方向键",
[UI_KEY_MOUSE_L] = "鼠标左键",
[UI_KEY_MOUSE_R] = "鼠标右键",
[UI_KEY_MOUSE_M] = "鼠标中键",
[UI_KEY_MOUSE_X1] = "鼠标侧键 4",
[UI_KEY_MOUSE_X2] = "鼠标侧键 5",
[UI_KEY_ENTER] = "回车",
[UI_KEY_BACKSPACE] = "退格",
[UI_KEY_RSHIFT] = "右 Shift",
[UI_KEY_RCTRL] = "右 Ctrl",
[UI_KEY_LALT] = "Alt",
[UI_KEY_CAPSLOCK] = "Caps Lock",
[UI_KEY_INSERT] = "Insert",
[UI_KEY_DELETE] = "Delete",
[UI_KEY_HOME] = "Home",
[UI_KEY_END] = "End",
[UI_KEY_PAGEUP] = "Page Up",
[UI_KEY_PAGEDOWN] = "Page Down",
[UI_KEY_NUM_FMT] = "小键盘 %s",
[UI_PAD_SOUTH] = "下方按键",
[UI_PAD_EAST] = "右侧按键",
[UI_PAD_WEST] = "左侧按键",
[UI_PAD_NORTH] = "上方按键",
[UI_PAD_LSTICK] = "左摇杆",
[UI_PAD_RSTICK] = "右摇杆",
[UI_PAD_L] = "左肩键",
[UI_PAD_R] = "右肩键",
[UI_PAD_START] = "Start",
[UI_PAD_BACK] = "Back",
[UI_PAD_DPAD_LEFT] = "十字键左",
[UI_PAD_DPAD_UP] = "十字键上",
[UI_PAD_DPAD_RIGHT] = "十字键右",
[UI_PAD_DPAD_DOWN] = "十字键下",
[UI_PAD_ZL] = "左扳机",
[UI_PAD_ZR] = "右扳机",
[UI_PAD_LPADDLE1] = "左背键",
[UI_PAD_RPADDLE1] = "右背键",
[UI_PAD_LPADDLE2] = "左背键 2",
[UI_PAD_RPADDLE2] = "右背键 2",
[UI_PAD_CROSS] = "叉键",
[UI_PAD_CIRCLE] = "圆圈键",
[UI_PAD_SQUARE] = "方块键",
[UI_PAD_TRIANGLE] = "三角键",
[UI_MENU_AMIIBO_DIR] = "amiibo 文件夹",
[UI_MENU_AMIIBO_OPEN] = "打开",
[UI_MENU_AMIIBO_DEFAULT_DIR] = "默认文件夹",
[UI_MENU_AMIIBO_REFRESH] = "刷新",
[UI_MENU_AMIIBO_PICK] = "amiibo 转储(540 字节的 .bin 或 .nfc 文件):",
[UI_MENU_AMIIBO_NO_DIR] = "无法打开文件夹 %s",
[UI_MENU_AMIIBO_READER] = "NFC 读取器",
[UI_MENU_AMIIBO_STATE] = "读取器:",
[UI_MENU_AMIIBO_STATE_IDLE] = "就绪",
[UI_MENU_AMIIBO_STATE_SEARCHING] = "游戏正在等待 amiibo",
[UI_MENU_AMIIBO_STATE_FOUND] = "amiibo 已放在读取器上",
[UI_MENU_AMIIBO_STATE_MOUNTED] = "游戏正在读取 amiibo",
[UI_MENU_AMIIBO_STATE_OFF] = "已关闭",
[UI_MENU_AMIIBO_FILE] = "已选文件:",
[UI_MENU_AMIIBO_NO_FILE] = "(未选择文件)",
[UI_MENU_AMIIBO_TAP] = "放上 amiibo",
[UI_MENU_AMIIBO_REMOVE] = "拿开 amiibo",
[UI_MENU_AMIIBO_AUTO_REMOVE] = "放上后自动拿开 amiibo",
[UI_MENU_AMIIBO_HOLD] = "停留时间",
[UI_MENU_AMIIBO_SECONDS] = "%.1f 秒",
[UI_MENU_AMIIBO_TAG] = "读取器上的 amiibo:",
[UI_MENU_AMIIBO_NO_TAG] = "读取器上没有 amiibo。",
[UI_MENU_AMIIBO_TAG_FILE] = "文件:%s",
[UI_MENU_AMIIBO_TAG_ID] = "角色 %s,系列 %02x,编号 %04x,类型 %02x",
[UI_MENU_AMIIBO_TAG_UID] = "UID:%s",
[UI_MENU_AMIIBO_READY] = "就绪",
[UI_MENU_AMIIBO_TAPPED] = "已放上:%s",
[UI_MENU_AMIIBO_LOAD_FAILED] = "不是 amiibo 转储(NTAG215,540 字节):%s",
[UI_MENU_AMIIBO_REMOVED] = "已拿开 amiibo",
[UI_MENU_AMIIBO_STATUS] = "状态:%s",
[UI_MENU_MENU_LANG] = "菜单语言",
[UI_MENU_MENU_LANG_DESC] = "本菜单和性能浮层的语言。",
[UI_MENU_MENU_LANG_AUTO] = "自动(跟随 Windows)",
[UI_MENU_DISCORD_RPC] = "Discord Rich Presence",
[UI_MENU_DISCORD_RPC_DESC] = "游戏运行时在 Discord 状态中显示“正在玩 NX2navi”及游戏时长。nx2navi.ini 中的 "
"discord_app_id 和 discord_image 选择应用。",
[UI_MENU_ADV_WARNING] = "这些设置用于测试和排查问题,请在了解原因后再修改。",
[UI_MENU_GROUP_SCHED] = "调度",
[UI_MENU_GROUP_SHADERS] = "着色器和管线",
[UI_MENU_GROUP_TEXMEM] = "纹理和内存",
[UI_MENU_GROUP_FIXES] = "渲染修正",
[UI_MENU_GROUP_VULKAN] = "Vulkan",
[UI_MENU_GROUP_DIAG] = "诊断",
[UI_MENU_ASYNC_PREEMPT] = "虚拟核心抢占",
[UI_MENU_ASYNC_PREEMPT_DESC] = "允许同一虚拟核心上的一个游戏线程打断另一个。",
[UI_MENU_PREEMPT_OFF] = "关",
[UI_MENU_PREEMPT_ON] = "开",
[UI_MENU_PREEMPT_INHERIT] = "仅继承",
[UI_MENU_REPLAY_ASYNC] = "GPU 帧准备独立线程",
[UI_MENU_REPLAY_ASYNC_DESC] = "在单独的线程而不是游戏线程上为 GPU 准备帧。在复杂场景中更快,但偶尔可能出现变暗或闪烁的画面。"
"最多增加一帧延迟。",
[UI_MENU_TIMER_1MS] = "1 ms Windows 计时器",
[UI_MENU_TIMER_1MS_DESC] = "将系统计时器精度提高到 1 ms,使帧间隔更平稳。",
[UI_MENU_PIPE_WAIT] = "等待中绘制的处理",
[UI_MENU_PIPE_WAIT_DESC] = "默认保留当前调度,并为等待中的绘制预留一个工作线程;"
"旧版(绘制)沿用先前的调度。",
[UI_MENU_PIPE_WAIT_DEFAULT] = "默认",
[UI_MENU_PIPE_WAIT_DRAW] = "旧版(绘制)",
[UI_MENU_PIPE_SKIP] = "构建管线时跳过的绘制",
[UI_MENU_PIPE_SKIP_DESC] = "哪些绘制会被直接丢弃,而不是等待其管线构建完成。",
[UI_MENU_PIPE_SKIP_STRICT] = "严格",
[UI_MENU_PIPE_SKIP_ANY] = "任意",
[UI_MENU_PIPE_SKIP_FULLSCREEN] = "全屏通道",
[UI_MENU_LIB_PREBUILD] = "阶段库预构建",
[UI_MENU_LIB_PREBUILD_DESC] = "在后台提前构建着色器阶段库。",
[UI_MENU_LIB_PREBUILD_THREADS] = "阶段库预构建线程数",
[UI_MENU_LIB_PREBUILD_THREADS_DESC] = "预构建使用的线程数;自动会根据你的 CPU 选择。",
[UI_MENU_PIPE_PREBUILD] = "管线预构建",
[UI_MENU_PIPE_PREBUILD_DESC] = "提前构建已知的管线。",
[UI_MENU_PREWARM_XLATE] = "着色器转译预热",
[UI_MENU_PREWARM_XLATE_DESC] = "启动时转译已知着色器的线程数;自动取 CPU 线程数的一半,"
"最多 16。",
[UI_MENU_GPL] = "图形管线库",
[UI_MENU_GPL_DESC] = "使用 Vulkan 管线库扩展;驱动对此有问题时请关闭。",
[UI_MENU_ASTC] = "ASTC 纹理解码",
[UI_MENU_ASTC_DESC] = "压缩的 ASTC 纹理在哪里解码。",
[UI_MENU_ASTC_AUTO] = "自动",
[UI_MENU_ASTC_GPU] = "GPU 着色器",
[UI_MENU_ASTC_NATIVE] = "原生",
[UI_MENU_ASTC_CPU] = "CPU",
[UI_MENU_MEMORY] = "GPU 内存模式",
[UI_MENU_MEMORY_DESC] = "游戏内存如何与 GPU 共享。",
[UI_MENU_MEMORY_AUTO] = "自动",
[UI_MENU_MEMORY_IMPORT] = "导入",
[UI_MENU_MEMORY_MIRROR] = "镜像",
[UI_MENU_MEMORY_VERIFY] = "校验",
[UI_MENU_TEX_ALIAS] = "纹理别名",
[UI_MENU_TEX_ALIAS_DESC] = "在仍在使用的纹理内存上新建纹理时,新纹理沿用原有内容,"
"而不是从空白开始。",
[UI_MENU_TEX_VRAM_PRESSURE] = "纹理显存上限",
[UI_MENU_TEX_VRAM_PRESSURE_DESC] = "显存占用超过这个百分比后,游戏已释放的纹理会被丢弃,"
"再次用到时从存储重新加载。0 表示不丢弃。",
[UI_MENU_ASTC_BC] = "ASTC 压缩为 BC3",
[UI_MENU_ASTC_BC_DESC] = "配合 GPU 解码器使用:把解码后的 ASTC 纹理重新编码为 BC3,"
"显存占用只有四分之一。纹理会出现轻微色块。"
"自动:显存 4 GB 及以下的显卡上开启。",
[UI_MENU_LOD_GUARD] = "LOD 保护",
[UI_MENU_LOD_GUARD_DESC] = "等待游戏改写完细节层次数据后再让 GPU 读取,"
"避免物体错位闪现,或远景有一帧变平。",
[UI_MENU_FIX_C0] = "常量缓冲区修正",
[UI_MENU_FIX_C0_DESC] = "填充驱动保留的常量组 c0(存储缓冲区大小、派发大小、点大小、"
"基础实例),而不是读取零值。",
[UI_MENU_FIX_ZERO] = "清零新的 GPU 内存",
[UI_MENU_FIX_ZERO_DESC] = "新的 GPU 内存池初始内容为零,与 Switch 内存一致。",
[UI_MENU_BIND_SKIP] = "跳过重复绑定",
[UI_MENU_BIND_SKIP_DESC] = "优化:跳过没有变化的绑定。",
[UI_MENU_SHADER_MEMO] = "着色器查找缓存",
[UI_MENU_SHADER_MEMO_DESC] = "优化:记住着色器的查找结果。",
[UI_MENU_PIPE_MEMO] = "管线缓存",
[UI_MENU_PIPE_MEMO_DESC] = "优化:状态重复时复用上一次绘制的管线。",
[UI_MENU_TEX_MEMO] = "纹理绑定缓存",
[UI_MENU_TEX_MEMO_DESC] = "优化:在多次绘制之间记住纹理描述符。",
[UI_MENU_DESC_TEMPLATE] = "描述符模板",
[UI_MENU_DESC_TEMPLATE_DESC] = "优化:批量更新描述符。",
[UI_MENU_PUSH_SKIP] = "跳过重复推送常量",
[UI_MENU_PUSH_SKIP_DESC] = "优化:跳过没有变化的推送常量。",
[UI_MENU_SPLIT_DRAWS] = "提前提交 GPU 工作",
[UI_MENU_SPLIT_DRAWS_DESC] = "在渲染通道之间每隔 N 次绘制分批提交 GPU 工作,让 GPU 更早开始;"
"0 为关闭。",
[UI_MENU_VK_VALIDATION] = "验证层",
[UI_MENU_VK_VALIDATION_DESC] = "检查每一次 Vulkan 调用,会大幅拖慢游戏。",
[UI_MENU_VK_VALIDATION_MISSING] = "未安装验证层。",
[UI_MENU_VK_DYN_VERTEX] = "动态顶点状态",
[UI_MENU_VK_DYN_VERTEX_DESC] = "强制开关动态顶点输入;默认值取决于显卡。",
[UI_MENU_VK_DYN_A2C] = "动态 Alpha 覆盖",
[UI_MENU_VK_DYN_A2C_DESC] = "强制开关动态 Alpha 覆盖。默认:AMD RDNA 2 及更早的驱动上为关闭,"
"开启会导致人物变黑;其他显卡上为开启。",
[UI_MENU_VK_SUBGROUP_PIN] = "固定子群大小",
[UI_MENU_VK_SUBGROUP_PIN_DESC] = "固定着色器的子群大小。",
[UI_MENU_TRACE] = "性能日志",
[UI_MENU_TRACE_DESC] = "把每帧耗时写入文件。",
[UI_MENU_FLIGHT] = "飞行记录仪",
[UI_MENU_FLIGHT_DESC] = "保留一小段历史记录,在画面卡住时保存。",
[UI_MENU_FLIGHT_SPIKE_MS] = "卡顿阈值(ms)",
[UI_MENU_FLIGHT_SPIKE_MS_DESC] = "算作卡顿的帧时间。",
[UI_MENU_PASS_CRUMBS] = "GPU 渲染通道标记",
[UI_MENU_PASS_CRUMBS_DESC] = "GPU 崩溃后,日志会写出当时正在运行的渲染通道。自动:仅 AMD。开:NVIDIA 也启用,有少量开销。",
[UI_MENU_INPUT_RECORD] = "输入录制",
[UI_MENU_INPUT_RECORD_DESC] = "把你的输入写入文件,用于反馈问题。",
[UI_MENU_OPEN_LOG] = "打开日志文件夹",
[UI_MENU_OPEN_LOG_DESC] = "显示存放日志文件的文件夹。",
[UI_MENU_COPY_INFO] = "复制系统信息",
[UI_MENU_COPY_INFO_DESC] = "把显卡、驱动、CPU、内存和改动过的设置复制到剪贴板。",
[UI_MENU_COPY_INFO_DONE] = "已复制",
[UI_MENU_ACTION_FAILED] = "操作失败",
[UI_MENU_RESET] = "将所有设置恢复为默认值",
[UI_MENU_RESET_DESC] = "对所有标签页生效。",
[UI_MENU_RESET_CONFIRM] = "要将所有设置恢复为默认值吗?",
[UI_MENU_RESET_YES] = "重置",
[UI_MENU_RESET_NO] = "取消",
[UI_MENU_OV_FPS] = "%.0f FPS",
[UI_MENU_OV_FRAME_MS] = "%.1f ms",
[UI_MENU_OV_GAME_PCT] = "游戏 %.0f%%",
[UI_MENU_OV_MAX_MS] = "最长 %.1f ms",
[UI_MENU_OV_FPS_LABEL] = "FPS", [UI_MENU_OV_FRAME_LABEL] = "帧时间", [UI_MENU_OV_FMT_FPS] = "%.0f",
[UI_MENU_OV_LOW1] = "1%% 低 %.0f", [UI_MENU_OV_LOW01] = "0.1%% 低 %.0f",
[UI_MENU_OV_GPU] = "GPU",
[UI_MENU_OV_CPU] = "CPU",
[UI_MENU_OV_RAM] = "内存",
[UI_MENU_OV_VRAM] = "显存",
[UI_MENU_OV_TEMP] = "温度",
[UI_MENU_OV_POWER] = "功耗",
[UI_MENU_OV_CLOCK] = "频率",
[UI_MENU_OV_NONE] = "-",
[UI_MENU_OV_REPLAY] = "GPU 帧准备",
[UI_MENU_OV_GPU_TIME] = "每帧 GPU 忙碌时间",
[UI_MENU_OV_PIPE_WAIT] = "管线等待",
[UI_MENU_OV_SHADER_WAIT] = "着色器等待",
[UI_MENU_OV_TEX_UPLOADS] = "纹理上传",
[UI_MENU_OV_FMT_PCT] = "%.0f%%",
[UI_MENU_OV_FMT_TEMP] = "%.0f °C",
[UI_MENU_OV_FMT_POWER] = "%.0f W",
[UI_MENU_OV_FMT_MHZ] = "%.0f MHz",
[UI_MENU_OV_FMT_GB] = "%.1f GB",
[UI_MENU_OV_FMT_GB_OF] = "/ %.1f GB",
[UI_MENU_OV_GAME_GB] = "游戏 %.1f GB",
[UI_MENU_OV_FMT_MS] = "%.2f ms",
[UI_MENU_OV_PER_FRAME] = "每帧 %.1f",
[UI_MENU_OV_WINDOW] = "窗口",
[UI_MENU_OV_OUTPUT] = "游戏画面",
[UI_MENU_OV_SCENE] = "3D 场景",
[UI_MENU_OV_SCALING] = "缩放",
[UI_MENU_OV_LIMIT] = "帧率上限",
[UI_MENU_OV_PRESENT] = "呈现模式",
[UI_MENU_OV_FMT_SIZE] = "%ux%u",
[UI_MENU_OV_FMT_SCENE] = "%ux%u,%.0f%%",
[UI_MENU_OV_FMT_FSR] = "AMD FSR 1,锐度 %d%%",
[UI_MENU_OV_FMT_SHRINK] = "双线性 + FSR 锐化 %d%%",
[UI_MENU_OV_SCALE_NONE] = "无(1:1)",
[UI_MENU_OV_SCALE_BILINEAR] = "双线性",
[UI_MENU_SHADOW_RES] = "阴影贴图尺寸",
[UI_MENU_SHADOW_RES_DESC] = "阴影细节。越高越吃显卡。",
[UI_MENU_SHADOW_RES_GAME] = "游戏默认(会变化)",
[UI_MENU_ANISO] = "纹理过滤",
[UI_MENU_ANISO_DESC] = "表面纹理的各向异性过滤:以小角度看到的地面、道路和墙壁在远处依然清晰,而不会模糊。游戏:使用游戏请求的级别,与 Switch 上相同。",
[UI_MENU_ANISO_GAME] = "游戏",
[UI_MENU_TEX_DETAIL] = "纹理细节",
[UI_MENU_TEX_DETAIL_DESC] = "大型表面纹理的清晰度。“降低”和“低”不加载它们最大的版本,使一个区域能放进 6 GB 和 8 GB 显卡的显存;只有近处的表面看起来略微柔和。“自动”根据显卡的显存选择。",
[UI_MENU_TEX_DETAIL_AUTO] = "自动:%s",
[UI_MENU_TEX_DETAIL_FULL] = "完整", [UI_MENU_TEX_DETAIL_REDUCED] = "降低", [UI_MENU_TEX_DETAIL_LOW] = "低",
[UI_MENU_HDR_GROUP] = "HDR",
[UI_MENU_HDR] = "HDR 输出",
[UI_MENU_HDR_DESC] = "在 HDR 显示器上呈现更亮的高光。请先在 Windows 中开启 HDR。",
[UI_MENU_HDR_PEAK] = "峰值亮度",
[UI_MENU_HDR_PEAK_DESC] = "显示器的峰值亮度(尼特)。",
[UI_MENU_HDR_GAME] = "游戏亮度",
[UI_MENU_HDR_GAME_DESC] = "游戏中白色的亮度(尼特)。",
[UI_MENU_HDR_UI] = "HUD 和菜单亮度",
[UI_MENU_HDR_UI_DESC] = "界面和本菜单的亮度(尼特)。",
[UI_MENU_HDR_HUE] = "色调校正",
[UI_MENU_HDR_HUE_DESC] = "明亮色彩保留色调映射前色调的程度;0 让它们随曲线偏移。",
[UI_MENU_HDR_GAMMA] = "伽马校正",
[UI_MENU_HDR_GAMMA_DESC] = "按游戏设计时的观看方式,以 2.2 或 BT.1886(2.4)显示器的效果呈现画面;关闭则保留 sRGB 曲线,暗部更亮。",
[UI_MENU_HDR_TONEMAP] = "色调映射",
[UI_MENU_HDR_TONEMAP_DESC] = "Vanilla:游戏自身的曲线,SDR 亮度。PsychoV35:场景经过人眼响应模型,与游戏的中灰和影调对齐,直到显示器的峰值亮度。RenoDRT:按亮度把游戏的 SDR 观感延伸到峰值。",
[UI_MENU_HDR_EXPOSURE] = "曝光",
[UI_MENU_HDR_EXPOSURE_DESC] = "色调映射前整个画面的亮度;100 % 保持不变。",
[UI_MENU_HDR_HIGHLIGHTS] = "高光",
[UI_MENU_HDR_HIGHLIGHTS_DESC] = "明亮部分的亮度;50 保持不变。",
[UI_MENU_HDR_SHADOWS] = "阴影",
[UI_MENU_HDR_SHADOWS_DESC] = "暗部的亮度;50 保持不变。",
[UI_MENU_HDR_CONTRAST] = "对比度",
[UI_MENU_HDR_CONTRAST_DESC] = "中灰周围的对比度;50 保持不变。",
[UI_MENU_HDR_SATURATION] = "饱和度",
[UI_MENU_HDR_SATURATION_DESC] = "所有色彩的强度;50 保持不变。",
[UI_MENU_HDR_HIGHLIGHT_SAT] = "高光饱和度",
[UI_MENU_HDR_HIGHLIGHT_SAT_DESC] = "最亮部分的色彩强度;50 保持不变。",
[UI_MENU_HDR_BLOWOUT] = "过曝",
[UI_MENU_HDR_BLOWOUT_DESC] = "让最亮的部分趋向白色;0 保留其颜色。",
[UI_MENU_HDR_FLARE] = "眩光",
[UI_MENU_HDR_FLARE_DESC] = "像少量杂散光一样提亮最暗的部分;0 保持纯黑。",
[UI_MENU_HDR_GRADE] = "调色",
[UI_MENU_HDR_GRADE_DESC] = "HDR 画面保留游戏自身调色的程度;0 为不含调色的场景。",
[UI_MENU_HDR_MIDGRAY] = "中灰",
[UI_MENU_HDR_MIDGRAY_DESC] = "场景中灰落在哪里。Vanilla:游戏自身曲线给出的位置。Render:场景的原值,稍暗。",
[UI_MENU_HDR_MATCH_SLOPE] = "匹配影调斜率",
[UI_MENU_HDR_MATCH_SLOPE_DESC] = "让中间调具有游戏自身曲线的对比度。",
[UI_MENU_HDR_TONE_SLOPE] = "影调斜率",
[UI_MENU_HDR_TONE_SLOPE_DESC] = "影调曲线在中灰处的陡峭程度;50 保持不变。",
[UI_MENU_HDR_HUE_CLIP] = "色调裁切模拟",
[UI_MENU_HDR_HUE_CLIP_DESC] = "明亮色彩像游戏 SDR 画面裁切处那样偏转的程度:火焰偏向黄色和白色。0 保持其色调。",
[UI_MENU_PROMPTS] = "按键提示",
[UI_MENU_PROMPTS_DESC] = "游戏的按键提示显示哪种按键:包括文字、动作提示和陶笛的音符。Nintendo:游戏原有的提示。"
"Xbox 和 PlayStation:该手柄的按键(LB、RB、LT、RT、Menu、View;L1、R1、L2、R2、Options、Create),"
"A、B、X、Y 显示为上方布局所按下的按键(使用 Nintendo(A 在右)时由右侧按键执行 A,因此 A 的提示显示 B 或圆圈)。"
"键盘和鼠标:每个按键对应的键(E、Ctrl、空格、左键……),WASD 移动,鼠标控制镜头。"
"提示文件由 tools/pad_prompts.py 根据按键图片生成,键位以生成时 nx2navi.ini 中的设置为准。"
"游戏在启动时读取按键提示,因此重启后才会改变。"
"提示属于游戏文件,在“操作”中重新映射的按键在重新生成文件之前仍显示原来的提示。",
[UI_MENU_PROMPTS_NINTENDO] = "Nintendo",
[UI_MENU_PROMPTS_XBOX] = "Xbox",
[UI_MENU_PROMPTS_PLAYSTATION] = "PlayStation",
[UI_MENU_PROMPTS_PC] = "键盘和鼠标",
[UI_MENU_MOUSE_MODE] = "鼠标视角",
[UI_MENU_MOUSE_MODE_DESC] = "直接:镜头按鼠标移动的距离转动,与电脑游戏相同,没有摇杆死区和响应曲线(游戏 1.1.1 和 1.4.3;其他版本使用摇杆模拟)。摇杆模拟:鼠标相当于右摇杆。",
[UI_MENU_MOUSE_STICK] = "摇杆模拟",
[UI_MENU_MOUSE_DIRECT] = "直接",
[UI_MENU_MENU_CURSOR] = "在游戏菜单中使用鼠标",
[UI_MENU_MENU_CURSOR_DESC] = "在游戏自身的菜单中(标题、背包、商店、对话选项)显示指针:指针下的项目被选中,左键确认,右键返回。仅在最后使用的是鼠标或键盘时生效,因此使用手柄时菜单保持不变(游戏 1.4.3)。",
[UI_MENU_PROMPTS_MISSING] = "缺少按键提示文件:请用 tools/pad_prompts.py 生成",
[UI_MENU_PROMPTS_FAILED] = "按键提示文件已损坏:请用 tools/pad_prompts.py 重新生成",
[UI_MENU_PROMPTS_RESTART] = "按键提示重启后生效",
[UI_MENU_PROMPTS_OFF_SHAPE] = "游戏分辨率不是 16:9 时关闭",
[UI_MENU_PROMPTS_OFF_MODS] = "已关闭:RomFS 模组替换了它们的文件",
[UI_MENU_PROMPTS_OFF_PATCHES] = "设置了 NX2NAVI_ROMFS_PATCHES 时关闭",
[UI_MENU_RESTART] = "立即重启",
[UI_MENU_RESTART_DESC] = "关闭游戏并以新的按键提示重新启动。上次存档之后的进度将会丢失。",
[UI_MENU_RESTART_CONFIRM] = "现在重启游戏?上次存档之后的进度将会丢失。",
[UI_MENU_QUIT_CONFIRM] = "退出游戏?上次存档之后的进度将会丢失。",
[UI_MENU_RESTART_YES] = "重启",
[UI_MENU_RESTART_COUNT] = "重启(%d)",
[UI_MENU_RESTART_SAVING] = "游戏正在存档:稍后即可重启。",
[UI_MENU_QUIT_SAVING] = "游戏正在存档:稍后即可退出。",
[UI_MENU_STICK_SENS] = "摇杆镜头速度",
[UI_MENU_STICK_SENS_DESC] = "右摇杆的镜头速度。",
[UI_MENU_WALK_KEY] = "步行键",
[UI_MENU_WALK_KEY_DESC] = "按住可用键盘步行。",
[UI_MENU_WALK_KEY_TAKEN] = "同时为 %s",
[UI_MENU_WALK_SCALE] = "步行幅度",
[UI_MENU_WALK_SCALE_DESC] = "按住步行键时键盘摇杆的推动幅度。一半为走路,推满为奔跑。",
[UI_MENU_OV_SCALE_DOWN] = "双线性(FSR 锐度 0)",
[UI_MENU_SHADOW_SCALE] = "阴影分辨率",
[UI_MENU_SHADOW_SCALE_DESC] = "让阴影更清晰。越高越吃显卡。",
[UI_MENU_SHADOW_RANGE] = "阴影级联范围",
[UI_MENU_SHADOW_RANGE_DESC] = "让远处的阴影保持清晰。",
[UI_MENU_CONTACT_SHADOWS] = "接触阴影",
[UI_MENU_CONTACT_SHADOWS_DESC] = "阴影贴图遗漏的细小太阳阴影:脚下、石头下、草丛和褶皱中。在光照之后于屏幕空间追踪。下次启动时生效。",
[UI_MENU_PCSS] = "柔和阴影",
[UI_MENU_PCSS_DESC] = "物体接触地面处的太阳阴影锐利,阴影投得越远越柔和(PCSS)。0 保留游戏自身的过滤。下次启动时生效。",
[UI_MENU_DLAA] = "NVIDIA DLSS / DLAA",
[UI_MENU_DLAA_DESC] = "用于 3D 场景的 NVIDIA DLSS(NVIDIA RTX 显卡;nvngx_dlss.dll 放在 nx2navi.exe 旁):边缘更平滑,闪烁更少。HUD "
"不受影响。下方的模式决定它的工作分辨率。重启后生效。",
[UI_MENU_DLSS] = "DLSS 模式",
[UI_MENU_DLSS_DESC] = "DLAA 以全分辨率绘制 3D 场景。质量、平衡、性能和超级性能分别以 67%、58%、50% 和 33% 绘制,再由 DLSS 放大,以节省 GPU 时间;它们会取代 3D 渲染比例。立即生效。",
[UI_MENU_DLSS_DLAA] = "DLAA(原生)",
[UI_MENU_DLSS_QUALITY] = "质量",
[UI_MENU_DLSS_BALANCED] = "平衡",
[UI_MENU_DLSS_PERFORMANCE] = "性能",
[UI_MENU_DLSS_ULTRA] = "超级性能",
[UI_MENU_DLSS_PRESET] = "DLSS 模型",
[UI_MENU_DLSS_PRESET_DESC] = "运行哪个 DLSS 模型。自动按 NVIDIA 对各模式的建议:DLAA、质量和平衡用 K,性能用 M,超级性能用 L。"
"J:移动角色身后的拖影略少,闪烁略多。K:所有模式都用最清晰的模型。立即生效。",
[UI_MENU_DLSS_PRESET_DEFAULT] = "自动", [UI_MENU_DLSS_PRESET_K] = "K(最清晰)",
[UI_MENU_DLSS_PRESET_J] = "J(拖影更少)",
[UI_MENU_DLSS_CHARS] = "DLSS 角色拖影",
[UI_MENU_DLSS_CHARS_DESC] = "减少移动中的角色、动物及其手持物品身后的淡淡拖影:DLSS 在这些位置少用之前的帧。越强拖影越少,"
"这些边缘也略欠平滑。立即生效。",
[UI_MENU_DLSS_CHARS_OFF] = "关", [UI_MENU_DLSS_CHARS_LIGHT] = "弱", [UI_MENU_DLSS_CHARS_MEDIUM] = "中",
[UI_MENU_DLSS_CHARS_FULL] = "强",
[UI_MENU_FXAA] = "游戏抗锯齿(FXAA)",
[UI_MENU_FXAA_DESC] = "游戏自身的 FXAA 边缘平滑。会让细节略微模糊;开启 DLAA 时不需要。",
[UI_MENU_AA] = "抗锯齿",
[UI_MENU_AA_DESC] = "3D 画面边缘的平滑方式。游戏 SMAA 是游戏自带的,与主机相同。关闭则保留原始边缘。FXAA 快速,略显柔和。SMAA 比游戏自带的找到更多边缘,并保持细节清晰。TAA 即全尺寸的 DLSS 或 "
"FSR:运动中边缘最稳定;它会设置放大方式。在 Upscaling 中选择 DLSS 或 FSR 时,它们的 TAA 始终运行,"
"此处的选择与其一同运行。立即生效。",
[UI_MENU_AA_GAME] = "游戏 SMAA",
[UI_MENU_AA_FXAA] = "FXAA",
[UI_MENU_AA_SMAA] = "SMAA(极高)",
[UI_MENU_AA_TAA_DLSS] = "TAA(NVIDIA DLAA)",
[UI_MENU_AA_TAA_FSR] = "TAA(AMD FSR 3.1)",
[UI_MENU_AA_TAA_FSR4] = "TAA(%s)",
[UI_MENU_AA_WITH_TAA] = "另加 Upscaling 的 TAA",
[UI_MENU_TAB_CHEATS] = "金手指",
[UI_MENU_CHEATS_NONE] = "此游戏版本没有金手指。模组的金手指是它的 cheats 文件夹中以游戏构建命名的 Atmosphere "
"金手指文件:mods\\<模组>\\cheats\\%s。重启游戏后才会读取。对于修改游戏代码的金手指,"
"游戏会在启动时自行重新构建(几分钟)。",
[UI_MENU_CHEATS_MOD] = "%s:%d 个金手指",
[UI_MENU_CHEAT_CODE_DESC] = "修改游戏代码。立即开关。",
[UI_MENU_CHEAT_KEY_DESC] = "按住 %s 时修改游戏代码。立即开关。",
[UI_MENU_CHEAT_DATA_DESC] = "开启时每帧写入游戏内存。",
[UI_MENU_CHEAT_MASTER] = "始终开启",
[UI_MENU_CHEAT_MASTER_DESC] = "文件的主代码:始终开启。",
[UI_MENU_CHEAT_RESTORE] = "无需使用",
[UI_MENU_CHEAT_RESTORE_DESC] = "它只会写回游戏原本的代码。关闭金手指时已经会这样做。",
[UI_MENU_CHEAT_REBUILD] = "重新构建后",
[UI_MENU_CHEAT_REBUILD_DESC] = "此金手指修改游戏代码,并且是在游戏构建后新增或修改的。游戏会在下次启动时把它构建进去(几分钟),也可以使用“立即重新构建游戏”。",
[UI_MENU_CHEAT_UNSUPPORTED] = "不支持",
[UI_MENU_CHEAT_UNSUPPORTED_DESC] = "此金手指不能用于此游戏版本:",
[UI_MENU_SAVES] = "存档",
[UI_MENU_SAVE_EXPORT] = "导出存档",
[UI_MENU_SAVE_EXPORT_DESC] = "将你的存档(所有存档位)写入“下载”文件夹中的一个 zip 文件,可分享给其他玩家或附在错误报告中。"
"其中不含你的密钥和游戏文件。",
[UI_MENU_SAVE_EXPORT_BUG] = "导出存档用于错误报告",
[UI_MENU_SAVE_EXPORT_BUG_DESC] = "同样的 zip,另附本次运行的日志和你的设置(nx2navi.ini),可看出发生了什么以及使用了哪些"
"设置。请将其附在错误报告中。",
[UI_MENU_SAVE_IMPORT] = "导入存档",
[UI_MENU_SAVE_IMPORT_DESC] = "选择别人分享的存档(NX2navi-save zip)。它会在下次启动时替换你的存档(所有存档位):游戏"
"把进度保存在内存中,若现在替换,游戏会把进度写回并覆盖它。你当前的存档会先复制到 saves "
"文件夹。",
[UI_MENU_SAVE_IMPORT_WAITING] = "下次启动时",
[UI_MENU_SAVE_IMPORT_CANCEL] = "取消导入",
[UI_MENU_SAVE_IMPORT_CANCEL_DESC] = "保留你的存档不变:丢弃等待下次启动的存档。",
[UI_MENU_SAVE_BUSY] = "处理中…",
[UI_MENU_SAVE_EXPORTED] = "已保存为 %s",
[UI_MENU_SAVE_IMPORT_READY] = "该存档(NX2navi %s)将在下次启动时载入:请选择下方的“重启”。你当前的存档会先复制到 saves "
"文件夹。",
[UI_MENU_SAVE_IMPORT_CANCELLED] = "已取消导入,你的存档保持不变。",
[UI_MENU_SAVE_IMPORTED] = "本次启动时已导入分享的存档。你原来的存档在 %s",
[UI_MENU_SAVE_IMPORTED_NEW] = "本次启动时已导入分享的存档。",
[UI_MENU_SAVE_E_NO_SAVE] = "还没有可导出的存档:请先游玩直到游戏存档。",
[UI_MENU_SAVE_E_READ_SAVE] = "无法读取存档文件;请稍后再试。",
[UI_MENU_SAVE_E_WRITE] = "无法将 zip 写入 %s。",
[UI_MENU_SAVE_E_READ] = "无法读取 %s。",
[UI_MENU_SAVE_E_STAGE] = "无法为下次启动准备存档;原因见日志。",
[UI_MENU_SAVE_E_NOT_SAVE] = "%s 不是 NX2navi 导出的存档。",
[UI_MENU_SAVE_E_OTHER_GAME] = "%s 是其他游戏的存档。",
[UI_MENU_SAVE_E_NEWER] = "%s 由更新版本的 NX2navi 制作:请先更新 NX2navi。",
[UI_MENU_SAVE_E_DAMAGED] = "%s 已损坏:请重新下载。",
[UI_MENU_SAVE_E_UNSAFE] = "%s 被拒绝:其中含有存档以外的文件、链接或过多的数据。",
[UI_MENU_CAPTURE_SAVED] = "错误快照 %d 已保存",
[UI_MENU_CAPTURE_FOLDER] = "文件夹:%s",
[UI_MENU_CAPTURE_FAILED] = "错误快照 %d 无法保存",
[UI_BOOT_TITLE] = "正在准备着色器",
[UI_BOOT_STARTING] = "正在启动", [UI_BOOT_SHADERS] = "着色器:%lld / %lld", [UI_BOOT_PIPELINES] = "管线:%lld / %lld",
[UI_BOOT_COMPUTE] = "计算管线:%lld / %lld", [UI_BOOT_DRIVER_CACHE] = "驱动缓存:%lld / %lld",
[UI_MENU_CHEATS_REBUILD] = "立即重新构建游戏",
[UI_MENU_CHEATS_REBUILD_DESC] = "有些金手指会修改游戏代码,但尚未构建进游戏:它们是新增或修改的,或上次重新构建失败或被取消。将关闭游戏;安装程序会把它们构建进去(几分钟)并重新启动游戏。上次存档之后的进度会丢失。",
[UI_MENU_MODS_EXEFS_UNSUPPORTED] = "此模组修改游戏代码(exefs)的方式本移植无法应用,因此整个模组保持关闭。%s",
[UI_MENU_MODS_EXEFS_OTHER] = "它的代码补丁(exefs)是为其他游戏版本制作的。",
[UI_MENU_MODS_EXEFS_ON] = "正在使用的代码补丁:%d 个文件。",
[UI_MENU_MODS_REPLACES_BUILTIN] = "正在使用的代码补丁:%d 个文件。它们取代本移植自带的补丁 %s,此模组开启时该补丁保持关闭。",
};
#define SWKBD_ONLY(name, ...) static const char *const name[UI_TEXT_COUNT] = {SWKBD(__VA_ARGS__)}
SWKBD_ONLY(text_ja, "文字入力", "名前を入力してください", "ウマ", "OK", "キャンセル", "コントローラー: A = OK、B = キャンセル");
SWKBD_ONLY(text_fr, "Saisie de texte", "Entrez un nom", "Cheval", "OK", "Annuler", "Manette : A = OK, B = Annuler");
SWKBD_ONLY(text_de, "Texteingabe", "Gib einen Namen ein", "Pferd", "OK", "Abbrechen", "Controller: A = OK, B = Abbrechen");
SWKBD_ONLY(text_it, "Inserimento testo", "Inserisci un nome", "Cavallo", "OK", "Annulla", "Controller: A = OK, B = Annulla");
SWKBD_ONLY(text_es, "Introducir texto", "Introduce un nombre", "Caballo", "Aceptar", "Cancelar",
"Mando: A = Aceptar, B = Cancelar");
SWKBD_ONLY(text_nl, "Tekstinvoer", "Voer een naam in", "Paard", "OK", "Annuleren", "Controller: A = OK, B = Annuleren");
SWKBD_ONLY(text_pt, "Inserir texto", "Introduz um nome", "Cavalo", "OK", "Cancelar", "Comando: A = OK, B = Cancelar");
SWKBD_ONLY(text_zh_hant, "文字輸入", "請輸入名字", "馬兒", "確定", "取消", "手把:A 確定,B 取消");
SWKBD_ONLY(text_ko, "문자 입력", "이름을 입력하세요", "말", "확인", "취소", "컨트롤러: A 확인, B 취소");
static const Row rows[] = {
{"en", text_en}, {"ja", text_ja}, {"fr", text_fr}, {"de", text_de}, {"it", text_it}, {"es", text_es},
{"nl", text_nl}, {"pt", text_pt}, {"ru", text_ru}, {"zh-Hans", text_zh_hans}, {"zh-Hant", text_zh_hant},
{"ko", text_ko}, {"pt-BR", text_pt_br},
};
const char *ui_text_lang(const char *code) {
static const struct { const char *code, *lang; } map[] = {
{"en-US", "en"}, {"en-GB", "en"}, {"fr-CA", "fr"}, {"es-419", "es"},
{"zh-CN", "zh-Hans"}, {"zh-TW", "zh-Hant"},
};
for (size_t i = 0; i < sizeof map / sizeof *map; i++)
if (!strcmp(code, map[i].code)) return map[i].lang;
return code;
}
// Every game language with the Mals file it reads: EUen/USen, USfr/EUfr, USes/EUes ship in every version; USpt only
// from 1.4.3; EUpl only in Ocarina (since 999: never by version, ui_text_game_langs_in finds it by its file).
static const struct { const char *code; UiTextId name; int since; const char *mals; } all_langs[] = {
{"en-US", UI_MENU_LANGNAME_EN, 0, "USen"}, {"en-GB", UI_MENU_LANGNAME_EN_GB, 0, "EUen"},
{"ja", UI_MENU_LANGNAME_JA, 0, "JPja"}, {"fr", UI_MENU_LANGNAME_FR, 0, "EUfr"},
{"fr-CA", UI_MENU_LANGNAME_FR_CA, 0, "USfr"}, {"de", UI_MENU_LANGNAME_DE, 0, "EUde"},
{"it", UI_MENU_LANGNAME_IT, 0, "EUit"}, {"es", UI_MENU_LANGNAME_ES, 0, "EUes"},
{"es-419", UI_MENU_LANGNAME_ES_419, 0, "USes"}, {"pt-BR", UI_MENU_LANGNAME_PT_BR, 143, "USpt"},
{"nl", UI_MENU_LANGNAME_NL, 0, "EUnl"}, {"ru", UI_MENU_LANGNAME_RU, 0, "EUru"},
{"zh-Hans", UI_MENU_LANGNAME_ZH_HANS, 0, "CNzh"}, {"zh-Hant", UI_MENU_LANGNAME_ZH_HANT, 0, "TWzh"},
{"ko", UI_MENU_LANGNAME_KO, 0, "KRko"}, {"pl", UI_MENU_LANGNAME_PL, 999, "EUpl"},
};
int ui_text_game_langs(int game_version, UiGameLang *out, int max) {
int n = 0;
for (size_t i = 0; i < sizeof all_langs / sizeof *all_langs && n < max; i++)
if (game_version >= all_langs[i].since) out[n++] = (UiGameLang){all_langs[i].code, all_langs[i].name};
return n;
}
int ui_text_game_langs_in(const char *const *regions, int nregions, UiGameLang *out, int max) {
int n = 0;
for (size_t i = 0; i < sizeof all_langs / sizeof *all_langs && n < max; i++)
for (int r = 0; r < nregions; r++)
if (!strcmp(regions[r], all_langs[i].mals)) {
out[n++] = (UiGameLang){all_langs[i].code, all_langs[i].name};
break;
}
return n;
}
static const Row *find_row(const char *lang) {
for (size_t i = 0; i < sizeof rows / sizeof *rows; i++)
if (!strcmp(rows[i].lang, lang)) return &rows[i];
return NULL;
}
int ui_text_defined(const char *lang, UiTextId id) {
const Row *r = find_row(lang);
return (unsigned)id < UI_TEXT_COUNT && r && r->text[id] && *r->text[id];
}
const char *ui_text_in(const char *lang, UiTextId id) {
if ((unsigned)id >= UI_TEXT_COUNT) return "";
return ui_text_defined(lang, id) ? find_row(lang)->text[id] : rows[0].text[id];
}
const char *ui_text(UiTextId id) { return ui_text_in(ui_text_lang(ov_language()), id); }
// A language's own strings, for the font that draws them: the merged system font must cover the whole menu of the
// language, not only its name (ui/menu.cpp fonts_up).
void ui_text_visit(const char *lang, void (*visit)(void *ctx, const char *text), void *ctx) {
const Row *r = find_row(lang);
if (!r) return;
for (int id = 0; id < (int)UI_TEXT_COUNT; id++)
if (r->text[id] && *r->text[id]) visit(ctx, r->text[id]);
}
// The menu language, re-read when cfg_version changes. NX2NAVI_MENU_LANG names a catalog language ("en", "ru", "pt-BR",
// "zh-Hans"); unset, it follows the system UI language, through the same code map the game language uses ("zh-CN" ->
// "zh-Hans"). Windows names a region with it ("ru-RU"), so a tag without menu text tries its language alone ("ru"). A
// language whose row has no menu text (only the software keyboard does) shows English, so other Windows locales keep the
// English menu.
static const char *resolve_menu_lang(void) {
const char *v = cfg_value("NX2NAVI_MENU_LANG");
const char *sys = plat_ui_language();
const char *lang = v && *v ? ui_text_lang(v) : sys && *sys ? ui_text_lang(sys) : "en";
if (ui_text_defined(lang, UI_MENU_TITLE)) return lang;
static char base[16]; // menu_text calls this on one thread at a time, on a cfg_version change
size_t n = strcspn(lang, "-");
if (n < sizeof base && lang[n]) {
memcpy(base, lang, n), base[n] = 0;
if (ui_text_defined(base, UI_MENU_TITLE)) return find_row(base)->lang;
}
return "en";
}
const char *menu_text(UiTextId id) {
static _Atomic(const char *) lang = "en";
static _Atomic unsigned seen = ~0u;
unsigned v = cfg_version();
if (v != atomic_load_explicit(&seen, memory_order_relaxed)) {
atomic_store_explicit(&lang, resolve_menu_lang(), memory_order_relaxed);
atomic_store_explicit(&seen, v, memory_order_relaxed);
}
return ui_text_in(atomic_load_explicit(&lang, memory_order_relaxed), id);
}