From e77a126c819bce64d517ee0c466996d5db7ddc02 Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Tue, 13 Feb 2018 13:37:20 +0100 Subject: [PATCH] fixed the descriptions in the stereo vision config; added some previously untranslated texts --- config.cpp | 43 +++++++++++++++++++----------- dialogs.cpp | 6 ++--- language-pl.cpp | 70 ++++++++++++++++++++++++++++++++++++++++++++++--- rug.cpp | 36 +++++++++++-------------- 4 files changed, 113 insertions(+), 42 deletions(-) diff --git a/config.cpp b/config.cpp index 587da72b..ec756104 100644 --- a/config.cpp +++ b/config.cpp @@ -851,7 +851,7 @@ void showBasicConfig() { dialog::addBoolItem(XLAT("quick mouse"), vid.quickmouse, 'M'); #endif - dialog::addBoolItem(XLAT("remove faraway cells from memory"), memory_saving_mode, 'y'); + dialog::addBoolItem(XLAT("forget faraway cells"), memory_saving_mode, 'y'); if(CAP_SHMUP && !ISMOBILE) dialog::addSelItem(XLAT("configure keys/joysticks"), "", 'p'); @@ -1058,15 +1058,15 @@ string explain3D(ld *param) { } void showStereo() { - cmode = sm::SIDE | sm::A3 | sm::MAYDARK; + cmode = sm::SIDE | sm::MAYDARK; gamescreen(0); using namespace geom3; dialog::init(XLAT("stereo vision config")); - string modenames[4] = { "OFF", "anaglyph", "stereo", "ODS" }; + string modenames[4] = { "OFF", "anaglyph", "side-by-side", "ODS" }; dialog::addSelItem(XLAT("stereo mode"), XLAT(modenames[stereo::mode]), 'm'); - dialog::addSelItem(XLAT("interpupilar distance"), fts3(stereo::ipd), 'e'); + dialog::addSelItem(XLAT("pupillary distance"), fts3(stereo::ipd), 'e'); switch(stereo::mode) { case stereo::sAnaglyph: @@ -1082,36 +1082,49 @@ void showStereo() { dialog::addSelItem(XLAT("field of view"), fts(stereo::fov) + "°", 'f'); - dialog::addItem(XLAT("exit stereo configuration"), 'v'); + dialog::addItem(XLAT("back"), 'v'); dialog::display(); keyhandler = [] (int sym, int uni) { using namespace geom3; dialog::handleNavigation(sym, uni); + + string help3 = XLAT( + "This allows you to view the world of HyperRogue in three dimensions. " + "Best used with the Hypersian Rug mode. When used in the disk model, " + "this lets you look at the Minkowski hyperboloid (which means the " + "depth of terrain features is actually reversed). It also works with non-disk models, " + "from the conformal menu." + ) + " " + XLAT( + "Currently, red-cyan anaglyph glasses and mobile VR googles are supported." + ) + "\n\n"; if(uni == 'm') { stereo::mode = stereo::eStereo((1 + stereo::mode) % 3); return; } else if(uni == 'e') - dialog::editNumber(stereo::ipd, -10, 10, 0.01, 0, XLAT("interpupilar distance"), - XLAT("Watch the Minkowski hyperboloid or the hypersian rug mode with the " - "red/cyan 3D glasses.")); + dialog::editNumber(stereo::ipd, -10, 10, 0.01, 0, XLAT("pupillary distance"), + help3 + + XLAT("The distance between your eyes in the represented 3D object. This is given in absolute units.") + ); else if(uni == 'd' && stereo::mode == stereo::sAnaglyph) dialog::editNumber(stereo::anaglyph_eyewidth, -1, 1, 0.01, 0, XLAT("distance between images"), - XLAT("Watch the Minkowski hyperboloid or the hypersian rug mode with the " - "red/cyan 3D glasses.")); + help3 + + XLAT("The distance between your eyes. 1 is the width of the screen.")); else if(uni == 'd' && stereo::mode == stereo::sLR) dialog::editNumber(stereo::lr_eyewidth, -1, 1, 0.01, 0, XLAT("distance between images"), - XLAT("Watch the Minkowski hyperboloid or the hypersian rug mode with the " - "red/cyan 3D glasses.")); + help3 + + XLAT("The distance between your eyes. 1 is the width of the screen.")); else if(uni == 'f') dialog::editNumber(stereo::fov, 1, 170, 1, 45, "field of view", - "Horizontal field of view, in the perspective projection. " - "In the orthogonal projection this just controls the scale." - ); + help3 + XLAT( + "Horizontal field of view, in angles. " + "This affects the Hypersian Rug mode (even when stereo is OFF) " + "and non-disk models.") + ); else if(doexiton(sym, uni)) popScreen(); }; diff --git a/dialogs.cpp b/dialogs.cpp index 2484485a..edc164c9 100644 --- a/dialogs.cpp +++ b/dialogs.cpp @@ -673,12 +673,12 @@ namespace dialog { addSlider(ne.scale(ne.vmin), ne.scale(*ne.editwhat), ne.scale(ne.vmax), 500); addBreak(100); #if ISMOBILE==0 - addHelp("You can scroll with arrow keys -- Ctrl to fine-tune"); + addHelp(XLAT("You can scroll with arrow keys -- Ctrl to fine-tune")); addBreak(100); #endif - addItem("return", ' '); - addSelItem("default value", disp(ne.dft), SDLK_HOME); + addItem(XLAT("return"), ' '); + addSelItem(XLAT("default value"), disp(ne.dft), SDLK_HOME); addBreak(100); diff --git a/language-pl.cpp b/language-pl.cpp index 4e9ee1c3..f8745da8 100644 --- a/language-pl.cpp +++ b/language-pl.cpp @@ -6649,14 +6649,78 @@ S("level to save:", "mapa do zapisu:") S("pics to load:", "obrazki do wczytania:") S("level to load:", "mapa do wczytania:") -S("remove faraway cells from memory", "usuwaj odległe pola z pamięci") +// new option +S("forget faraway cells", "zapominaj odległe pola") N("Lost Memory", GEN_F, "Utracona Pamięć", "Utracone Pamięci", "Utraconą Pamięć", "w Utraconej Pamięci") S( "Because of the properties of hyperbolic geometry, it is extremely unlikely to randomly " "get back to a faraway place you have been to. However, you have managed to get there " - "somehow. In the meantime, its memory has been cleared, since the 'remove faraway cells from the memory'" + "somehow. In the meantime, its memory has been cleared, since the 'forget faraway cells'" " option was on.", "Ze względu na właściwości geometrii hiperbolicznej praktycznie niemożliwe jest, by " "przypadkowo wrócić do odległego miejsca, w którym się było wcześniej. Ale jakoś Ci się to udało... " - "W międzyczasie pamięć została wyczyczona, ze względu na włączoną opcję 'usuwaj odległe pola z pamięci'.'" + "W międzyczasie pamięć została wyczyczona, ze względu na włączoną opcję 'zapominaj odległe pola'.'" ) + +// shmup +N("Blueball", GEN_F, "Niebieska kula", "Niebieske kule", "Niebieską kulę", "Niebieską kulą") +S("A powerful missile from a Blue Raider.", "Potężny pocisk Niebieskiego Jeźdźca.") + +// missing +S(" fps: ", " fps: ") +S("default value", "domyślna wartość") +S("You can scroll with arrow keys -- Ctrl to fine-tune", "Przewijaj strzałkami -- Ctrl by dostroić") +S("font scale", "rozmiar czcionki") +S("background particle effects", "cząsteczki w tle") + +// not yet translated for Hypersian Rug mode +S("orthogonal", "ortogonalny") +S("perspective", "perspektywa") +S("model scale factor", "współczynnik skali modelu") + +// stereo vision config +S("stereo vision config", "konfiguracja trybu stereo") + +S("This allows you to view the world of HyperRogue in three dimensions. " + "Best used with the Hypersian Rug mode. When used in the disk model, " + "this lets you look at the Minkowski hyperboloid (which means the " + "depth of terrain features is actually reversed). It also works with non-disk models, " + "from the conformal menu.", + "Ten tryb pozwala oglądać świat HyperRogue w trzech wymiarach. " + "Najlepiej używać w trybie Hiperskiego Dywanu. Używane w modelu dysku " + "pozwala patrzeć na hiperboloidę Minkowskiego (co oznacza, że głębokość " + "terenu jest odwrócona). Działa też w innych modelach niż dysk, z trybu " + "konforemnego." + ) + +S("Currently, red-cyan anaglyph glasses and mobile VR googles are supported.", + "Obecnie działa z czerwono-turkusowymi okularami i goglami VR do telefonów.") + +S("stereo mode", "tryb stereo") +S("anaglyph", "anaglif") +S("side-by-side", "stereopara") + +S("pupillary distance", "odległość źrenic") +S("The distance between your eyes in the represented 3D object. This is given in absolute units.", + "Odległość między oczami w reprezentowanym obiekcie 3D. Podana w jednostkach absolutnych.") + +S("distance between images", "odległość między obrazami") +S("The distance between your eyes. 1 is the width of the screen.", + "Odległość między oczami. 1 to szerokość ekranu.") + +// field of view +S("Horizontal field of view, in angles. " + "This affects the Hypersian Rug mode (even when stereo is OFF) " + "and non-disk models.", + "Szerokość pola widzenia, w stopniach. " + "Ma wpływ na tryb Hiperskiego Dywanu (nawet gdy stereo jest wyłączone) " + "i modele inne niż dysk.") + +// more magic configuration +S("affect model central point", "punkt centralny") +S("affect texture position X", "położenie tekstury X") +S("affect texture position Y", "położenie tekstury Y") + +S("select master cells", "wybierz główne pola") +S("select master triangles", "wybierz główne trójkąty") +S("fine tune vertices", "dostrajanie wierzchołków") diff --git a/rug.cpp b/rug.cpp index 094f6e28..afb78901 100644 --- a/rug.cpp +++ b/rug.cpp @@ -1576,36 +1576,30 @@ void show() { if(rug::rugged) rug::close(); else rug::init(); } -#if CAP_ODS - else if(uni == 'I') - dialog::editNumber(ipd, 0, 1, .002, .05, "interpupilar distance", - "Used in the ODS projection." - ); -#endif else if(uni == 'R') - dialog::editNumber(finger_range, 0, 1, .01, .1, "finger range", - "Press 1 to enable the finger mode." + dialog::editNumber(finger_range, 0, 1, .01, .1, XLAT("finger range"), + XLAT("Press 1 to enable the finger mode.") ); else if(uni == 'F') - dialog::editNumber(finger_force, 0, 1, .01, .1, "finger force", - "Press 1 to enable the finger force." + dialog::editNumber(finger_force, 0, 1, .01, .1, XLAT("finger force"), + XLAT("Press 1 to enable the finger force.") ); else if(uni == 'o' && !rug::rugged) renderonce = !renderonce; else if(uni == 'v') { - dialog::editNumber(vertex_limit, 0, 50000, 500, 3000, "vertex limit", - "The more vertices, the more accurate the Hypersian Rug model is. " - "However, a number too high might make the model slow to compute and render." + dialog::editNumber(vertex_limit, 0, 50000, 500, 3000, ("vertex limit"), + XLAT("The more vertices, the more accurate the Hypersian Rug model is. " + "However, a number too high might make the model slow to compute and render.") ); dialog::reaction = [] () { err_zero_current = err_zero; }; } else if(uni == 'r') addMessage(XLAT("This just shows the 'z' coordinate of the selected point.")); else if(uni == 'm') { - dialog::editNumber(modelscale, 0.1, 10, rugged ? .001 : .1, 1, "model scale factor", - "This is relevant when the native geometry is not Euclidean. " + dialog::editNumber(modelscale, 0.1, 10, rugged ? .001 : .1, 1, XLAT("model scale factor"), + XLAT("This is relevant when the native geometry is not Euclidean. " "For example, if the native geometry is spherical, and scale < 1, a 2d sphere will be rendered as a subsphere; " - "if the native geometry is hyperbolic, and scale > 1, a hyperbolic plane will be rendered as an equidistant surface. " + "if the native geometry is hyperbolic, and scale > 1, a hyperbolic plane will be rendered as an equidistant surface. ") ); dialog::scaleLog(); if(rug::rugged) { @@ -1631,13 +1625,13 @@ void show() { } } else if(uni == 'd') - dialog::editNumber(model_distance, -10, 10, .1, 1, "model distance", - "In the perspective projection, this sets the distance from the camera to the center of the model. " - "In the orthogonal projection this just controls the scale." + dialog::editNumber(model_distance, -10, 10, .1, 1, XLAT("model distance"), + XLAT("In the perspective projection, this sets the distance from the camera to the center of the model. " + "In the orthogonal projection this just controls the scale.") ); else if(uni == 'e') { - dialog::editNumber(err_zero, 1e-9, 1, .1, 1e-3, "maximum error", - "New points are added when the current error in the model is smaller than this value." + dialog::editNumber(err_zero, 1e-9, 1, .1, 1e-3, XLAT("maximum error"), + XLAT("New points are added when the current error in the model is smaller than this value.") ); dialog::scaleLog(); dialog::reaction = [] () { err_zero_current = err_zero; };